内存子系统
场景:
当你把一个已经占用了1GB内存的进程转移到一个新的cgroup后,新的cgroup看到的该进程使用的内存大小会是多少呢?
memory.max_usage_in_bytes 和 memory.usage_in_bytes 都不会将这1GB计算在内的,只有该进程继续申请内存才会计算新申请的内存。
同样,如果把一个占用内存很多的进程从cgroup中移出来,memory.max_usage_in_bytes 和 memory.usage_in_bytes 应该也不会被更新
Process Number Controller
- pids.current 可以大于 pids.max
- 当cgroup中进程数量达到最大时,cgroup并不“阻止”从其它cgroup中移动一个进程到该cgroup中;只是说不允许在该cgroup中fork、clone新的进程或线程
- pids.current包含所有子孙cgroup中的进程(和线程)
- 当cgroup对进程数量不限制时,pids.max 不是0(零)也不是-1,而是字符串max😓