3 ms·
When a Linux process is waiting for a socket to have data ready to read (using a system call like select, poll, or epoll), that process is put into a sleep stat
by CaliforniaKarl 2y ago
When a Linux process is waiting for a socket to have data ready to read (using a system call like select, poll, or epoll), that process is put into a sleep state by the kernel. It continues accruing “wall-clock time” (“wall time”) but stops accruing CPU time. When the kernel has data for the socket, the process starts running again.
The above tracking method works for containerized things. For virtualized things, it’s different: When a Linux system has nothing to do (all processes sleeping or waiting), the kernel puts the CPU to sleep. The kernel will eventually be woken by an interrupt from something, at which point things continue. In a virtualized environment, the hypervisor can measure how long the entire VM is running or sleeping.
- throwAGIway 2y agoThanks to you and the others who replied too, very insightful. You put me on the right track to learn more about this, much appreciated.
- btown 2y agoEconomically, Cloudflare can do this because they only need a V8 isolate per instance (so barely any RAM besides instantiated JS objects), whereas a Lambda needs RAM for the entire runtime environment. So many more customers can run on the same machine, even if many are waiting on I/O simultaneously. https://blog.cloudflare.com/cloud-computing-without-containers https://blog.cloudflare.com/cloud-computing-without-containe...