I've created custom slice (so now I have 4 slices user, system, machine, important) and assigned huge number to CPUShares. System felt really unresponsive under high load in this slice, what seems to be logical considering enormous CPUShares value. However later I've set CPUShares to really tiny value (64 comparing to default 4096 for user.slice and system.slice) And to be honest system also felt quite unresponsive, maybe not that much but still it was really annoying. So as the result cpu load from important.slice was tiny comparing to other slices (around 11%) but everything felt terribly unresponsive. What I mean by unresponsive is that the same app running in user.slice despite using much more CPU affected other processes in user.slice significantly less than the same process running in important.slice. For example:Running Blender renderer in user.slice on all 8 cores under 100% load didn't make system feel unresponsive at all. User experience remained really good and PC remained capable of performing other tasks.Running Blender renderer in important.slice with low CPUShares when utilizing only 11% CPU made whole system run painfully slow, even tty was lagging.Of course CPUAccounting is enabled everywhere.
systemd slices even with low CPUShare heavily affect system responsiveness
linux;systemd;performance;tuning