프로세스 메모리 사용에 관한 세 가지 상충되는 정보 소스가 있습니다. 샘플 프로세스로 gnome-terminal을 사용하고 있습니다.
ps aux
pid 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
과소 보고하거나 과다 보고한다는 점에서 다소 부정확합니다.
smem
PID, 사용자, 명령, 교환, USS, PSS 및 RSS를 표시합니다. 그것을 실행하고 PSS
열을 기록해 두십시오. 이는 실제로 사용된 물리적 메모리의 양이며 실제로 사용된 공유 메모리의 적절한 양도 고려합니다. PID, 명령 및 PSS만 필요한 경우 이를 awk
1, 3, 6열로 파이프할 수 있습니다.
smem | awk '{print $1,$3,$6}'