对于某些任务,cgroup memory.usage_in_bytes 始终为零

对于某些任务,cgroup memory.usage_in_bytes 始终为零

我正在尝试使用 cgroup 在 CentOS 6 机器上使用扭矩队列管理器来管理 HPC 集群上的内存。只是为了测试我登录到运行作业的节点,其中我有:

pbs_mom(12184)─┬─sh(24312)───9809188.launchp(24339)───fcgene(24362)
               ├─{pbs_mom}(12190)
               └─{pbs_mom}(12191)

我已经启动了 cgconfig 服务。然后我做

# cd /cgroup/memory
# mkdir jobMOM
# cd jobMOM
# echo 12184 > tasks
# cat cgroup.procs
12184
# cat memory.usage_in_bytes
81920

然后我在树中添加其他过程

# for f in 24312 12190 12191 24339 24362 ; do echo $f >> tasks ; done

但我发现内存使用率实际上下降了

# cat memory.usage_in_bytes
49152

但添加的进程总共使用超过 18GB 内存

# ps -eLo pid,fname,vsize,rss | egrep '^(12184|12190|12191|24312|24339|24362)'
12184 pbs_mom   48076 27432
12184 pbs_mom   48076 27432
12184 pbs_mom   48076 27432
24312 sh       114532  1716
24339 9809188. 106132  1248
24362 fcgene   16815264 16809768

所以看来我添加的新任务被忽略了。有人明白为什么吗?

当我删除这个 cgroup 并创建一个仅包含进程 24339 和 24362 的新 cgroup 时,我总是只得到 0 的 memory.usage_in_bytes 值。 memory.stat 中的所有内容也都是 0。

相关内容