Como posso monitorar o consumo de memória por processo / por encadeamento (dividido em heap, pilha, dados, código)?

10

Antes de entrar e escrever meu próprio código, quero descobrir se existe algum software GNU / Linux capaz de produzir algo semelhante a showmem do QNX.

Para cada thread de cada processo em execução, gostaria de ver o consumo de memória dividido nas seguintes categorias:

 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)

Existe alguma coisa que torne isso possível?

    
por Alex Dima 21.01.2015 / 15:51

1 resposta

4

Você pode ver algumas informações usando pmap -x PID - é dividido em kbytes, rss e memória suja para cada biblioteca / módulo / arquivo aberto / pilha de um processo:

undefine@uml:~$ pmap -x 13206
13206:   sleep 60
Address           Kbytes     RSS   Dirty Mode  Mapping
0000000000400000      24      20       0 r-x-- sleep
0000000000606000       4       4       4 r---- sleep
0000000000607000       4       4       4 rw--- sleep
000000000063b000     132       8       8 rw---   [ anon ]
00007f6a9847e000    4308      44       0 r---- locale-archive
00007f6a988b3000    1772     376       0 r-x-- libc-2.19.so
00007f6a98a6e000    2048       0       0 ----- libc-2.19.so
00007f6a98c6e000      16      16      16 r---- libc-2.19.so
00007f6a98c72000       8       8       8 rw--- libc-2.19.so
00007f6a98c74000      20      12      12 rw---   [ anon ]
00007f6a98c79000     140     116       0 r-x-- ld-2.19.so
00007f6a98e71000      12      12      12 rw---   [ anon ]
00007f6a98e99000       8       8       8 rw---   [ anon ]
00007f6a98e9b000       4       4       4 r---- ld-2.19.so
00007f6a98e9c000       4       4       4 rw--- ld-2.19.so
00007f6a98e9d000       4       4       4 rw---   [ anon ]
00007fff09fd0000     132      12      12 rw---   [ stack ]
00007fff09ffe000       8       4       0 r-x--   [ anon ]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- ------- 
total kB            8652     656      96
    
por 01.02.2015 / 15:03