This task has 2 related goals:
- Unify and correct the cgroups puppet code. Currently, it is implemented in two places:
There are also minor corrections, such as setting MemoryMax (the point at which the host tries to aggressively reclaim memory) to the same value as MemoryHigh (the point at which the process is OOMkilled). The larger the gap between these two, the more the host freezes. The current difference is 40% (50% high, 90% max).
- Improve process observability for stat hosts
While we're currently tracking Jupyter notebook resource consumption on our stat hosts dashboard, users can also start expensive processes outside of JupyterHub. We can track these by enabling the "process option" in cadvisor (ref cadvisor docs).