Как измерить использование памяти процессом Solaris?

11

Как проверить, сколько памяти занимает процесс Solaris? Я бы хотел, чтобы было выделено как общее адресное пространство, так и объем, который находится в оперативной памяти.

Я попытался суммировать вывод pmap с помощью некоторого awk-скрипта, но это был ужасный хак. Есть ли лучший способ написать это?

Тадеуш А. Кадлубовский
источник

Ответы:

18
  1. prstat -s rss

    '-s' сортирует вывод prstat по столбцу rss (другие страницы см. в справочной странице). Также попробуйте опцию -a для накопления на пользователя.

  2. ps -eo pid,pmem,vsz,rss,comm | sort -rnk2 | head

    Топ 10 потребителей ОЗУ. «-o pmem» отображает процент резидентной памяти, то есть оперативной памяти, используемой процессом.

  3. ls -lh /proc/{pid}/as

    Простой способ показать общее адресное пространство (vsz) процесса. Полезно в сочетании с pgrep для накопления пользователем, шаблоном, например:

    for pid in `pgrep -U webserver`; do ls -lh /proc/$pid/as; done
    

источник
3

Ну, после того, как я прочитал некоторые справочные страницы, я получил следующее

ps -o vsz -p $PID | tail -1

Это довольно просто. Формат резидентного размера - rss.

Тадеуш А. Кадлубовский
источник
2
prstat

Или может быть dtrace-скрипт?

Пайхимис
источник
Prstat является очевидным выбором для интерактивного мониторинга.
Тадеуш А. Кадлубовский
2

Я использую вариант этого вывода в скриптах:

# prstat -Z 1 1 | tail -3
ZONEID    NPROC  SWAP   RSS MEMORY      TIME  CPU ZONE                        
220       56 1057M  413M   0.3%   1:26:49 0.1% 820f6ce5-7e37-4455-80ab-b28c5de19b43
Total: 56 processes, 169 lwps, load averages: 0.07, 0.06, 0.06
Артур Пендзивилк
источник
0

Мои $ .02 в качестве менеджера сообщества Zenoss ...

Zenoss может отслеживать состояние всех ваших сетевых устройств и серверов, а также процессов, выполняемых на ваших серверах. Один из членов нашего сообщества недавно представил Мониторинг процессов для Solaris через SNMP: http://community.zenoss.org/docs/DOC-5882

mray
источник