web-dev-qa-db-ja.com

ソラリスプロセスのメモリ使用量を測定する方法は?

Solarisプロセスが消費するメモリ量を確認するにはどうすればよいですか?割り当てられた合計アドレス空間とRAMに常駐している容量の両方が欲しいのですが。

いくつかのawkスクリプトでpmap出力を合計しようとしましたが、それは醜いハックでした。それをスクリプト化するより良い方法はありますか?

  1. prstat -s rss

    '-s'は、rss列によってprstat出力をソートします(他の列については、manページを参照してください)。また、ユーザーごとの累積については、「-a」オプションを試してください。

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

    トップ10 RAMコンシューマ。「-o pmem」は、常駐メモリの割合を表示します。つまり、RAM)。

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

    プロセスの合計アドレス空間(vsz)を表示する簡単な方法。 pgrepと組み合わせて使用​​すると、ユーザー、パターンなどによって蓄積されます。例:

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

まあ、私がいくつかのマニュアルページを読んだ後、私は以下を得ました

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

とても簡単です。常駐サイズの形式はrssです。

この出力のバリエーションをスクリプトで使用します。

# 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
2
prstat

それともdtraceスクリプト?

2
pyhimys

Zenossコミュニティマネージャーとしての私の$ .02 ...

Zenossは、すべてのネットワークデバイスとサーバー、およびサーバーで実行されているプロセスの状態を監視できます。コミュニティメンバーの1人が最近、SNMPを介してSolarisのプロセス監視を提出しました: http://community.zenoss.org/docs/DOC-5882

0
mray