일부 작업에서는 cgroup memory.usage_in_bytes가 항상 0입니다.

일부 작업에서는 cgroup memory.usage_in_bytes가 항상 0입니다.

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

하지만 추가된 프로세스는 총 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을 생성하면 항상 memory.usage_in_bytes 값 0만 얻습니다. memory.stat의 모든 항목도 0입니다.

관련 정보