We have an emulated SUSE 390 system where the niceness is not being respected by specific processes. We're seeing multiple instances of processes with a niceness of 10 superseding processes that have a niceness of -15. (see below). In this instance, the expectation is that process 21937 would have priority and yet we see 9731 and 10339 getting higher CPU.
I've performed some research on this and was led to discussions on automatic process group scheduling. However, we've read that this was added in the 2.6.38 kernel and our system is running 2.6.5-7.191-s390x and doesn't have /proc/sys/kernel/sched_autogroup_enabled.
Can you help us understand why this behavior occurs? Is there a fix action we can enact to change how the processes share resources?
top - 14:35:08 up 342 days, 3:15, 2 users, load average: 14.58, 13.25, 12.28
Tasks: 76 total, 2 running, 69 sleeping, 1 stopped, 4 zombie
Cpu(s): 24.8% us, 44.6% sy, 25.1% ni, 0.0% id, 0.0% wa, 0.0% hi, 5.5% si
Mem: 2050140k total, 2037772k used, 12368k free, 127408k buffers
Swap: 359896k total, 4184k used, 355712k free, 1291592k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9731 testing 26 10 72656 22m 14m S 99.9 1.1 0:06.57 <REDACTED>
10339 testing 25 10 305m 172m 20m S 99.9 8.6 221:35.28 <REDACTED>
21937 builder 10 -15 93232 84m 7928 R 20.4 4.2 0:35.93 <REDACTED2>
10371 testing 26 10 323m 187m 22m S 13.2 9.4 340:11.35 <REDACTED3>
9908 testing 26 10 153m 33m 16m S 8.3 1.7 0:07.14 <REDACTED3>