RSS (размер резидентного набора) отличается при использовании pmap и ps command
$ pmap -x 10400 10400: ./a.out Address Kbytes RSS Dirty Mode Mapping 0000000000400000 0 0 0 rx-- a.out 0000000000600000 0 4 4 r---- a.out 0000000000601000 0 4 4 rw--- a.out 00007f957085f000 0 4 0 rx-- 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 rx-- 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 rx-- [ anon ] ffffffffff600000 0 0 0 rx-- [ anon ] ---------------- ------ ------ ------ total kB 4148 92 84
RSS – 92
$ ps -o rss,sz,vsz 10400 RSS SZ VSZ 80 1037 4148
- Виртуальная схема памяти ядра: отрицательные значения
- В Linux ядро, которое обрабатывает все пропуски TLB?
- как ограничить адрес dma конкретным диапазоном в ядре linux?
- путают о PSS в / proc / pid / maps
- Посвятите некоторую память определенной программе
RSS – 80
почему и что произошло?
2 Solutions collect form web for “RSS (размер резидентного набора) отличается при использовании pmap и ps command”
На странице man для 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).
В основном это может произойти из-за использования разных источников данных: – / proc / PID / maps используется pmap – / proc / PID / stat используется ps
Эти источники содержат данные, которые вычисляются, используются разные методы (как сообщается, см. Здесь , например).