mem 및 vmem 정보

mem 및 vmem 정보

저는 Linux에서 실행되는 머신 클러스터를 사용하고 있습니다.

mpirun내 작업을 클러스터 시스템에 제출하는 쉘 스크립트가 있습니다 . 동일한 스크립트에서 작업에 할당할 노드 수를 선택할 수 있습니다. 여태까지는 그런대로 잘됐다.

문제가 발생합니다. 일부 작업을 제출하면 모든 것이 제대로 작동하지만 노드의 용량을 가득 채웠을 때 제출된 작업 중 일부가 완료되지 않습니다. 따라서 클러스터에서 사용 가능한 메모리가 모든 작업을 동시에 처리하기에 충분하지 않은 것 같습니다.

그래서 시간이 지남에 따라 각 작업의 메모리 사용량을 확인하고 싶은데 이 qstat -f명령을 사용하면 많은 내용이 표시되며 대부분 이해할 수 없습니다.

내 질문은 다음과 같습니다.아래 명령의 출력 예에서는 qstat -f두 가지 유형의 메모리를 볼 수 있습니다: memvmem. 둘의 차이점이 무엇인지, 실제로 얼마나 많은 메모리가 사용되는지 알고 싶습니다.

resources_used.cput = 00:21:04
resources_used.mem = 2099860kb
resources_used.vmem = 40505676kb
resources_used.walltime = 00:21:08

또한 이 명령의 출력을 자세히 설명하는 참조 자료를 보내주시면 감사하겠습니다. man qstat를 시도했지만 반환된 각 행에 대해 자세히 설명하지 않습니다.

답변1

공개 질문 목록에서 이 내용을 제외하고 간단한 답변을 제공합니다(위의 goldilocks의 의견 및 qstat 문서는 사용자가 시스템에 대해 더 잘 알고 있다고 가정합니다).

대답은 "실제 사용된 메모리 양"(그리고 나중에 "사용된 RAM 공간"이라는 주석에 대한 답변에서)이 정확히 무엇을 의미하는지에 따라 달라집니다.

출력의 "mem"은 qstat -f작업에서 사용한 시스템 RAM의 양, 보다 정확하게는 관찰된 최대 사용량입니다. 클러스터의 작업 모니터링 시스템은 가끔씩만 사용량을 확인할 수 있으므로 이것이 반드시 최대 사용량인 것은 아닙니다. 작업에서 여기에 보고된 것보다 더 많은 메모리를 사용하려고 할 수 있지만 시스템이 작업에 더 많은 메모리를 제공하지 않을 수 있습니다. 예를 들어 더 이상 메모리가 없거나 동일한 시스템에서 실행 중인 다른 작업이 메모리를 놓고 경쟁하고 있기 때문입니다. 또한 파일 활동(I/O)이 많으면 파일 시스템 캐시가 RAM의 경쟁자가 될 수 있습니다.

"vmem"은 최신 프로세서가 메모리를 관리하는 방식과 관련된 수량입니다. 이것은 또 다른 정점입니다. 이 숫자에는 메모리 매핑된 파일, 스왑 공간 등 프로세스가 액세스할 수 있는 다양한 항목이 포함될 수 있습니다. 여기에는 프로세스에 의해 할당되었지만 한 번도 사용되지 않은 공간이 포함되어 있으므로 매우 클 수 있습니다. 숫자가 낮을 경우에는 메모리가 문제가 아니라고 결론 내릴 수 있지만, 숫자가 높을 경우에는 알 수 없으므로 추가 조사가 필요합니다. 일부 응용 프로그램은 작은 부분만 필요하더라도 많은 양의 가상 메모리를 할당합니다.

관련 정보