Solarisプロセスが消費するメモリ量を確認するにはどうすればよいですか?割り当てられた合計アドレス空間とRAMに常駐している容量の両方が欲しいのですが。
いくつかのawkスクリプトでpmap出力を合計しようとしましたが、それは醜いハックでした。それをスクリプト化するより良い方法はありますか?
prstat -s rss
'-s'は、rss列によってprstat出力をソートします(他の列については、manページを参照してください)。また、ユーザーごとの累積については、「-a」オプションを試してください。
ps -eo pid,pmem,vsz,rss,comm | sort -rnk2 | head
トップ10 RAMコンシューマ。「-o pmem」は、常駐メモリの割合を表示します。つまり、RAM)。
ls -lh /proc/{pid}/as
プロセスの合計アドレス空間(vsz)を表示する簡単な方法。 pgrepと組み合わせて使用すると、ユーザー、パターンなどによって蓄積されます。例:
for pid in `pgrep -U webserver`; do ls -lh /proc/$pid/as; done
まあ、私がいくつかのマニュアルページを読んだ後、私は以下を得ました
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
prstat
それともdtraceスクリプト?
Zenossコミュニティマネージャーとしての私の$ .02 ...
Zenossは、すべてのネットワークデバイスとサーバー、およびサーバーで実行されているプロセスの状態を監視できます。コミュニティメンバーの1人が最近、SNMPを介してSolarisのプロセス監視を提出しました: http://community.zenoss.org/docs/DOC-5882