RSS (tamanho do conjunto residente) é diferente quando usar o comando pmap e ps

4
 
$ pmap -x 10400
10400:   ./a.out
Address           Kbytes     RSS   Dirty Mode   Mapping
0000000000400000       0       0       0 r-x--  a.out
0000000000600000       0       4       4 r----  a.out
0000000000601000       0       4       4 rw---  a.out
00007f957085f000       0       4       0 r-x--  libc-2.15.so
00007f9570a12000       0       0       0 -----  libc-2.15.so
00007f9570c11000       0      16      16 r----  libc-2.15.so
00007f9570c15000       0       8       8 rw---  libc-2.15.so
00007f9570c17000       0       8       8 rw---    [ anon ]
00007f9570c1c000       0       0       0 r-x--  ld-2.15.so
00007f9570e1f000       0      12      12 rw---    [ anon ]
00007f9570e3c000       0       8       8 rw---    [ anon ]
00007f9570e3e000       0       4       4 r----  ld-2.15.so
00007f9570e3f000       0       8       8 rw---  ld-2.15.so
00007fff18a6d000       0      12      12 rw---    [ stack ]
00007fff18bff000       0       4       0 r-x--    [ anon ]
ffffffffff600000       0       0       0 r-x--    [ anon ]
----------------  ------  ------  ------
total kB            4148      92      84
 

RSS é 92

 
$ ps -o rss,sz,vsz 10400
  RSS    SZ    VSZ
   80  1037   4148

RSS é 80

por que e o que aconteceu?

    
por jessinio 23.11.2012 / 15:00

2 respostas

3

Na página man do ps:

   The SIZE and RSS fields don’t count some parts of a process including
   the page tables, kernel stack, struct thread_info, and struct
   task_struct. This is usually at least 20 KiB of memory that is always
   resident. SIZE is the virtual size of the process (code+data+stack).
    
por 23.11.2012 / 15:35
3

Basicamente, isso pode acontecer porque eles usam fontes de dados diferentes:  - / proc / PID / maps é usado pelo pmap  - / proc / PID / stat é usado por ps

Essas fontes contêm dados que são calculados usando métodos diferentes (supostamente, veja aqui , por exemplo).

    
por 23.11.2012 / 15:42

Tags