I know there are process priorities like in other operating systems, going from -20 (most prio) to 19 (less prio) but Linux seems to ignore them.
Right now I was building the kernel in the background (although make
processes have priority 0) and since it took quite some time I decided to watch something. So I opened a pretty demanding H264 video (~30% of CPU time of a Core2 2.6GHz) in VLC only to find out there was tearing, frames lost, visual artifacts (resulting from the previous I presume), although audio seemed to be fine.
So I decided to change the priority of VLC using renice
, concretely seeing that PulseAudio had -11
I decided to put it on par so I did sudo renice -11 -p VLC_PROC_#
.
Same thing kept happening, so I went on and set it to -20 but I still kept seeing visual artifacts.
So I wonder, why Linux didn't actually prioritize a -20 process over some 0 processes and give it anything it needed? Is there any way to really prioritize processes in Linux?
In case it matters, I'm running a 64-bit Arch here, XFCE as desktop environment.
EDIT: The kernel compilation was performed in /tmp
which I have as tmpfs
so its sources and all were already in RAM. RAM usage didn't even reach 60% and there was no paging operations in place.
The scenario detailed above is just a test case, I'm more interested in why Linux performed how it did and if there's any way to get real priorities.