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?

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.