(no title)
msarnowicz | 10 months ago
I came into the Linux world via Postgres, and this was an interesting project for me learning more about Linux internals. While cgroups v2 do offer basic support for CPU bursting, the bursts are short-lived, and credits don’t persist beyond sub-second intervals. If you’ve run into scenarios where more adaptive or sustained bursting would help, we’d love to hear about them. Knowing your use cases will help shape what we build next.
motrm|10 months ago
I particularly enjoyed the gentle exposition into the world of cgroups and how they work, the levers available, and finally how Ubicloud uses them.
Looking forward to reading how you handle burst credits over longer periods, once you implement that :)
Lovely work, Maciek!
msarnowicz|10 months ago
nighthawk454|10 months ago
msarnowicz|10 months ago
The main challenge here is that cpu.max.burst can be set no higher than the limit set in cpu.max. This limits our options to some extent. But we can still look at some possible implementation choices here: - Pack more VMs into the same slice/group, and with that lower the minimum CPU guaranteed, and at the same time lower the price point. This would increase the chance of running into a "noisy neighbor", but we expect it would not be used for any critical workload. - Implement calculation of CPU credits outside of the kernel and change the CPU max and burst limits dynamically over an extended period of time (hours and days, instead of sub-second).
parrit|10 months ago
Are there typical use cases where you reach for cgroups directly instead of using the container abstraction?
msarnowicz|10 months ago
phrotoma|10 months ago