Monday, 10 May 2010

Какую же все-таки память отображает ps aux?

Немного поэксперементируем над процессом ispmanager в попытках изучить, что же за магические цифры отображает ps aux:

ps aux | egrep 'ispmgr|USER'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 29586 0.0 0.1 171776 19304 ? S 02:35 0:00 /usr/local/ispmgr/bin/ispmgr


Теперь заюзаем утилиту pmap, которая подробно покажет и расскажет, чем занята память:
pmap -d 29586 | tail -n1
mapped: 171780K writeable/private: 30892K shared: 212K


То есть, VSZ - это как раз и есть mapped (из man ps: virtual memory size of the process in KiB (1024-byte units). Device mappings are currently excluded; this is subject to change. (alias vsize).). В этом можно убедиться довольно простым образом:


ps aux | egrep 'ispmgr|USER' | grep -v 'grep'; pmap -d 29586 | tail -n1
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 29586 0.0 0.1 171780 19388 ? S 02:35 0:00 /usr/local/ispmgr/bin/ispmgr
mapped: 171784K writeable/private: 30896K shared: 212K


С RSS чуть иначе - resident set size, the non-swapped physical memory that a task has used (in kiloBytes). То есть это что-то как раз близкое к writeable/private, но на аж 10 мегабайт меньшее. Так что это лично для меня пока загадка :))

По мотивам: http://www.opennet.ru/base/sys/pmap_memory.txt.html

1 comment:

  1. Вот тоже занятно: http://bmaurer.blogspot.com/2006/03/memory-usage-with-smaps.html

    ReplyDelete

Note: only a member of this blog may post a comment.