Torque Queue Managerを使用してHPCクラスタのメモリを管理するために、CentOS 6システムでcgroupを使用しようとしています。テストのためにジョブが実行されているノードにログインしました。ここには次のものがあります。
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
ただし、追加されたプロセスは合計18 GB以上のメモリを使用します。
# 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を作成すると、常にmemory.usage_in_bytes値0のみが取得されます。 memory.statのすべてのエントリも0です。