I am running a docker container with a CFS configuration of 100000us period and quota of 450000us
My understanding is that this means that for 100000us accounting periods, if the CPU consumption exceeds 450000us of time (i.e. 4.5 cores worth of work happened), the process will be penalized for the next accounting period.
I expect that if I have precisely 4 tasks burning 100% CPU that no throttling should occur. I am not sure if time spent in syscalls is accounted for in the CFS accounting.
I have a process that is being regularly throttled (10% of the time) but I cannot understand why. I have been polling /proc/$pid/stat for all of the tasks in the cgroup on a 100ms interval to try and prove that certain 100ms windows do indeed exceed the accounting threshold, but the container seems to use at most half of this.
How can I root-cause the reason why the CFS decided to throttle?