Jak zmierzyć zużycie pamięci procesowej solaris?

11

Jak sprawdzić, ile pamięci zajmuje proces solaris? Chciałbym zarówno przydzielonej całkowitej przestrzeni adresowej, jak i ilości rezydującej w pamięci RAM.

Próbowałem zsumować wyjście pmap za pomocą skryptu awk, ale był to brzydki hack. Czy istnieje lepszy sposób na napisanie skryptu?

Tadeusz A. Kadłubowski
źródło

Odpowiedzi:

18
  1. prstat -s rss

    '-s' sortuje dane wyjściowe prstat według kolumny rss (inne strony znajdują się na stronie manuala). Spróbuj także opcji „-a” dla akumulacji przypadającej na użytkownika.

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

    10 najlepszych konsumentów pamięci RAM. „-o pmem” wyświetla procent pamięci rezydentnej, tj. pamięci RAM używanej przez proces.

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

    Łatwy sposób na wyświetlenie całkowitej przestrzeni adresowej (vsz) procesu. Przydatne w połączeniu z pgrep do gromadzenia według użytkownika, wzoru, ... np .:

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

źródło
3

Cóż, po przeczytaniu kilku stron podręcznika dostałem następujące

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

To całkiem proste. Format rezydenta ma format rss.

Tadeusz A. Kadłubowski
źródło
2
prstat

A może skrypt dtrace?

pyhimys
źródło
Prstat to oczywisty wybór do interaktywnego monitorowania.
Tadeusz A. Kadłubowski
2

Używam odmian tego wyjścia w skryptach:

# 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
Artur Pędziwilk
źródło
0

Moje 0,02 $ jako menadżer społeczności Zenoss ...

Zenoss może monitorować kondycję wszystkich urządzeń sieciowych i serwerów, a także procesy uruchomione na serwerach. Jeden z naszych członków społeczności niedawno przesłał monitorowanie procesu dla Solaris za pośrednictwem SNMP: http://community.zenoss.org/docs/DOC-5882

mray
źródło