Linux에서의 프로세스 메모리 사용량

Linux에서의 프로세스 메모리 사용량

프로세스 메모리 사용에 관한 세 가지 상충되는 정보 소스가 있습니다. 샘플 프로세스로 gnome-terminal을 사용하고 있습니다.

ps auxpid 31880에 대한 단위 사용량을 보고합니다 624480(나는 그것이 단위로 무엇을 사용하는지 모르기 때문에 단위라고 말합니다).https://superuser.com/a/117921/403466, 바이트 단위입니다.

그러면 /proc/31880/status그 양은 같지만 단위는 kB입니다.

[...]
VmPeak:   624480 kB
VmSize:   624480 kB
VmLck:         0 kB
[...]

이는 624MiB에 달합니다(완전히 불가능합니까?) gnome-system-monitor. 9.9MiB.

어느 것이 맞나요?

답변1

둘 다 맞습니다. ps킬로바이트를 표시하는 것입니다 /proc/.../status. 610MiB(624,480kiB)는 프로세스의 가상 크기로, 자체 매핑에서 예약된 주소 공간의 총량입니다. 9.9MiB는 상주 크기로, 실제로 사용하는 메모리 양입니다.

바라보다상주 세트 크기/가상 크기에 대한 설명이 필요합니다.자세한 내용은.

답변2

smem아직 패키지가 없다면 설치하세요. 이것이 가장 정확합니다. 실제 할당된 메모리를 계산할 때 ps -eo pid,command,rss둘 다 ps -eo pid,command,size과소 보고하거나 과다 보고한다는 점에서 다소 부정확합니다.

smemPID, 사용자, 명령, 교환, USS, PSS 및 RSS를 표시합니다. 그것을 실행하고 PSS열을 기록해 두십시오. 이는 실제로 사용된 물리적 메모리의 양이며 실제로 사용된 공유 메모리의 적절한 양도 고려합니다. PID, 명령 및 PSS만 필요한 경우 이를 awk1, 3, 6열로 파이프할 수 있습니다.

smem | awk '{print $1,$3,$6}'

관련 정보