Рассмотрим следующий вывод pmap
простого tail
процесса в Linux:
$ pmap -x 3974
3974: tail -F /var/log/syslog
Address Kbytes RSS Dirty Mode Mapping
0000000000400000 60 36 0 r-x-- tail
000000000060e000 4 4 4 r---- tail
000000000060f000 4 4 4 rw--- tail
0000000000610000 132 12 12 rw--- [ anon ]
00007ffff7775000 2792 44 0 r---- locale-archive
00007ffff7a2f000 1672 432 0 r-x-- libc-2.17.so
00007ffff7bd1000 2048 0 0 ----- libc-2.17.so
00007ffff7dd1000 16 16 16 r---- libc-2.17.so
00007ffff7dd5000 8 8 8 rw--- libc-2.17.so
00007ffff7dd7000 16 12 12 rw--- [ anon ]
00007ffff7ddb000 132 104 0 r-x-- ld-2.17.so
00007ffff7fd7000 12 12 12 rw--- [ anon ]
00007ffff7ff7000 12 12 12 rw--- [ anon ]
00007ffff7ffa000 8 4 0 r-x-- [ anon ]
00007ffff7ffc000 4 4 4 r---- ld-2.17.so
00007ffff7ffd000 8 8 8 rw--- ld-2.17.so
00007ffffffde000 132 24 24 rw--- [ stack ]
ffffffffff600000 4 0 0 r-x-- [ anon ]
---------------- ------ ------ ------
total kB 7064 736 116
Учитывая процесс и его состояние, я могу получить ps
для вывода различной информации об использовании памяти:
$ ps -lp 3974
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 3974 3972 0 80 0 - 1766 - pts/0 00:00:00 tail
$ ps vp 3974
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
3974 pts/0 Ss+ 0:00 3 57 7006 660 0.0 tail -F /var/log/syslog
$ ps lp 3974
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 1000 3974 3972 20 0 7064 660 - Ss+ pts/0 0:00 tail -F /var/log/syslog
Однако, за исключением поля VSZ
из вывода l
, все они более или менее отличаются от информации, которую дает pmap
об отдельных отображениях. Самым странным из всех является, очевидно, поле SZ
из вывода -l
, которое я просто не могу понять, на что оно рассчитывает. Я не нашел никакого объяснения того, что он делает в какой-либо документации (на странице руководства упоминается что-то загадочное в "основном изображении", но он не определяет этот термин, и я не вижу никакой комбинации полей из pmap
которая бы добавила до 1766 года или даже что-нибудь отдаленно близкое к этому). Кто-нибудь знает?
Однако поле RSS
на выходах v
и l
также немного отличается от pmap
, как и поле DRS
на выходе v
. Хотя разница не так уж и велика, она все же немного сбивает меня с толку.