On Fri, Jun 15, 2018 at 08:40:02PM +0300, Ivan Zahariev wrote:
The lazy pids accounting + modern fast CPUs makes the "pids.current"Yeah, that actually makes a lot of sense. We can't keep everything
metric practically unusable for resource limiting in our case. For a
test, when we started and ended one single process very quickly, we
saw "pids.current" equal up to 185 (while the correct value at all
time is either 0 or 1). If we want that a "cgroup" can spawn maximum
50 processes, we should use some high value like 300 for "pids.max",
in order to compensate the pids uncharge lag (and this depends on
the speed of the CPU and how busy the system is).
synchronous for obvious performance reasons but we definitely can wait
for RCU grace period before failing. Forking might become a bit
slower while pids are draining but shouldn't fail and that shouldn't
incur any performance overhead in normal conditions when pids aren't
constrained.