프로세스 당 / 스레드 당 메모리 소비를 어떻게 모니터링 할 수 있습니까 (힙, 스택, 데이터, 코드로 구분됨)? listing (Total, Code, Data, Heap,

직접 코드를 작성하고 작성하기 전에 QNXshowmem 와 비슷한 것을 출력 할 수있는 GNU / Linux 소프트웨어가 있는지 알고 싶습니다 .

실행중인 각 프로세스의 각 스레드에 대해 메모리 소비를 다음 범주로 나누고 싶습니다.

 Process listing (Total, Code, Data, Heap, Stack, Other)
 319488  1024000      24587     167936      24576          0        4103 devc-con-hid (thread 2)
    0          0          0          0       4096          0        4103 devc-con-hid (thread 2)
    0          0          0          0      20480          0        4103 devc-con-hid (thread 1)
    0     102400       8192          0          0          0        4103 devc-con-hid (proc/boot/devc-con-hid)
    0          0      16384          0          0          0        4103 devc-con-hid (proc/boot/libc.so.3)
    0          0          0          0          0  (   36864)       4103 devc-con-hid (/dev/mem)

이것을 가능하게 할 것이 있습니까?



답변

다음을 사용하여 몇 가지 정보를 볼 수 있습니다 pmap -x PID-이 프로세스의 각 라이브러리 / 모듈 / 파일 열기 / 스택 킬로바이트, RSS 및 더러운 메모리로 나뉘어 :

undefine @ uml : ~ $ pmap -x 13206
13206 : 수면 60
주소 KB RSS 더티 모드 매핑
0000000000400000 24 20 0 rx-- 수면
0000000000606000 4 4 r ---- 수면
0000000000607000 4 4 rw --- 수면
000000000063b000 132 8 8 rw --- [anon]
00007f6a9847e000 4308 44 0 r ---- 로케일 아카이브
00007f6a988b3000 1772 376 0 rx-- libc-2.19.so
00007f6a98a6e000 2048 0 ----- libc-2.19.so
00007f6a98c6e000 16 16 16 r ---- libc-2.19.so
00007f6a98c72000 8 8 rw --- libc-2.19.so
00007f6a98c74000 20 12 12 rw --- [아논]
00007f6a98c79000 140116 0 rx-- ld-2.19.so
00007f6a98e71000 12 12 12 rw --- [아논]
00007f6a98e99000 8 8 8 rw --- [anon]
00007f6a98e9b000 4 4 r----ld-2.19.so
00007f6a98e9c000 4 4 rw --- ld-2.19.so
00007f6a98e9d000 4 4 rw --- [anon]
00007fff09fd0000 132 12 12 rw --- [스택]
00007fff09ffe000 8 4 0 rx-- [아논]
ffffffffff600000 4000 rx-- [아논]
---------------- ------- ------- -------
총 kB 8652656 96