Ubuntu 12.04에는 여러 apache2 프로세스(1130 상위 프로세스 및 생성된 하위 프로세스)가 실행되고 있으며, 보시다시피 가상 메모리는 약 300-400MB이고 상주 메모리는 10MB입니다.
$ ps aux | grep apache2
root 1130 0.0 0.1 149080 10600 ? Ss Jul11 0:03 /usr/sbin/apache2 -k start
www-data 23440 0.0 0.3 163660 24096 ? S 10:46 0:01 /usr/sbin/apache2 -k start
www-data 27349 0.0 0.3 163380 23768 ? S 13:16 0:01 /usr/sbin/apache2 -k start
www-data 27949 0.0 0.3 163912 24300 ? S 13:36 0:01 /usr/sbin/apache2 -k start
www-data 28568 0.0 0.3 161496 22852 ? S 14:15 0:00 /usr/sbin/apache2 -k start
www-data 28622 0.0 0.3 163656 23924 ? S 14:18 0:00 /usr/sbin/apache2 -k start
www-data 28874 0.0 0.3 163600 23636 ? S 14:33 0:00 /usr/sbin/apache2 -k start
www-data 28881 0.0 0.1 149368 7840 ? S 14:33 0:00 /usr/sbin/apache2 -k start
www-data 28884 0.0 0.2 152856 12768 ? S 14:33 0:00 /usr/sbin/apache2 -k start
www-data 29459 0.0 0.1 149368 7788 ? S 15:07 0:00 /usr/sbin/apache2 -k start
www-data 29531 0.0 0.1 149184 7256 ? S 15:10 0:00 /usr/sbin/apache2 -k start
1000 29543 0.0 0.0 8112 900 pts/0 S+ 15:11 0:00 grep apache2
메모리 사용량을 측정하기 위해 가상 메모리와 상주 메모리를 사용할 때의 문제점은 많은 프로세스가 공유 라이브러리를 사용할 수 있으므로 해당 프로세스의 개별 메모리 사용량이 정확하지 않을 수 있다는 것입니다. 따라서 pmap이 대신 사용되는 경우가 많습니다. pmap은 공유 라이브러리를 제외하고 해당 프로세스의 증분 비용으로 생각할 수 있는 프로세스의 "쓰기 가능/개인" 총계를 제공합니다.
그래서 저는 23440이라는 특정 프로세스를 선택하여 메모리 사용량을 알아내려고 합니다.
$ pmap -d 23440
23440: /usr/sbin/apache2 -k start
Address Kbytes Mode Offset Device Mapping
mapped: 0K writeable/private: 0K shared: 0K
글쎄, 그것은 나에게 아무 것도 말해주지 않습니다. 무슨 일이야?
답변1
이 명령을 사용하려면 루트이거나 프로세스가 속한 사용자여야 합니다. 이 시도:
$ sudo pmap -d 23440
예를 들어
$ sudo pmap -d 1457
1457: /usr/sbin/httpd
Address Kbytes Mode Offset Device Mapping
00007ff9f23bf000 76 r-x-- 0000000000000000 0fd:00000 zip.so
00007ff9f23d2000 2044 ----- 0000000000013000 0fd:00000 zip.so
00007ff9f25d1000 8 rw--- 0000000000012000 0fd:00000 zip.so
00007ff9f25d3000 12 r-x-- 0000000000000000 0fd:00000 libgpg-error.so.0.5.0
00007ff9f25d6000 2044 ----- 0000000000003000 0fd:00000 libgpg-error.so.0.5.0
00007ff9f27d5000 4 rw--- 0000000000002000 0fd:00000 libgpg-error.so.0.5.0
...
...
00007fff70db1000 84 rw--- 0000000000000000 000:00000 [ stack ]
00007fff70dff000 4 r-x-- 0000000000000000 000:00000 [ anon ]
ffffffffff600000 4 r-x-- 0000000000000000 000:00000 [ anon ]
mapped: 290336K writeable/private: 6288K shared: 580K