linux – Cgroups内存相关问题

1)为什么cgroup显示的任务数量多于实际的任务数量.

例如:

[root@localhost proc]# ps -aux | wc -l
421
[root@localhost proc]# cat /sys/fs/cgroup/memory/tasks | wc -l
539

2)为什么cgroup显示的内存使用量比实际内存使用量多?

例如:

[root@localhost memory]# free -h
              total        used        free      shared  buff/cache   available
Mem:            11G        425M        9.4G         38M        1.7G         10G
Swap:          2.0G        193M        1.8G
[root@localhost memory]# cat /sys/fs/cgroup/memory/memory.usage_in_bytes
1596362752

上面你可以看到free显示使用的内存为425M,而cgroups显示大约1.4GB?

请注意,只有1个默认cgroup,没有创建其他cgroup

3)如何为cgroup计算正确/适当的内存利用率?

解决方法:

1)当每个线程都是一个任务时,多线程进程在ps aux输出中有一行.比较ps -auxH | wc -l

上一篇:docker原理


下一篇:容器中的隔离与限制:namespace和cgroups