Two containers in one Pod have distinct CPU quotas and memory limits; a busy loop records real throttling.

cgroups enforce container budgets within a hierarchy

Kubernetes resource fields become useful constraints only when the node’s execution stack applies them. On Linux, kubelet and the container runtime use cgroups to organize processes and configure resource controllers. The result is a hierarchy, not merely one number attached to a Pod. Check the relevant container group and its inherited constraints before deciding what budget a process can actually consume. ...

February 11, 2028 · 6 min · XB Field Notes
A parent passes file limits to children while changes in one child stay there.

Set file limits in the process that starts the workload

A shell’s ulimit builtin changes resource limits for that shell and the processes it subsequently starts. For file descriptors, RLIMIT_NOFILE has a current soft value and a hard ceiling. Understanding where those values are inherited is essential when a terminal reports a generous limit but an independently managed service still fails to open files or accept connections. ...

July 19, 2027 · 5 min · XB Field Notes
An exhausted child cannot allocate a descriptor while its controller still can.

Diagnose descriptor exhaustion in the process that fails

A process needs file descriptors for more than ordinary files. Network sockets, pipes, event interfaces, and duplicated references all compete for entries in its descriptor table. RLIMIT_NOFILE limits the descriptor numbers available to new allocations: the soft limit is one greater than the maximum permitted number. A service can therefore fail to accept work even while the machine has plenty of disk space and memory. ...

October 27, 2026 · 4 min · XB Field Notes