回答:
プロセスごとのメモリアカウンティングは、後ほど説明するいくつかの理由で注意が必要です。単純な監視には、gkrellmd、またはnagiosスクリプトでおそらく十分です。より高い精度が必要な場合は、一見難しくする必要があります。
smemは、比例セットサイズの概念を導入します。
通常、物理メモリの大部分は複数のアプリケーション間で共有されるため、常駐セットサイズ(RSS)と呼ばれるメモリ使用量の標準的な測定値では、メモリ使用量が大幅に過大評価されます。代わりに、PSSは各共有エリアの各アプリケーションの「公平なシェア」を測定して、現実的な測定を行います。
例:GNOMEを起動すると、アプレットとプログラムごとに1つのプロセスが開始されます。それらはすべてlibglibにリンクしています。Linuxはlibglibをメモリの1つのブロックにロードし、libglibを必要とするすべてのプロセスにマップします。ナイーブメモリアカウンティングは、リンクしているすべてのプロセスに対してlibglibの完全なサイズをカウントします。
smemはlibglibのコストをそれを使用するプロセスに分割し、現実をより詳細に把握します。また、メモリ使用量を表示するための多くのオプションがあります(Webサイトから)。
ただし、ごく最近のカーネル(> 2.6.27)が必要です。
既製のものは考えられない
ただし、ps -AH vを実行するPHPスクリプトのコンボ| awk '{print $ 8、$ 9、$ 10}'とpChartでそれを使用すると、探していることを行うWebページが得られるでしょうか?(Kbでの使用、合計の割合およびプロセス名)
そして、collectedはどうですか?
自分でやれ。RRDデータベースを更新する単純なシェルスクリプトを作成します。次に、rrdtoolを使用してグラフを描画します。
あなたが本当により低いレベルの詳細に興味があるなら、collectlを忘れないでください。報告できるプロセスごとのメモリ使用率のタイプの例を次に示します。
RECORD 1 cag-dl585-02(1244758290.002)(木6月11日18:11:30 2009) プロセスの要約(カウンターは/ sec) #PIDユーザーS VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF MinFコマンド 9089ルートS 66856K 0 2328K 1440K 212K 736K 6812K 0 0 sendmail: 9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 0 sendmail: 9108ルートS 6428K 0 360K 180K 84K 88K 1944K 0 0 gpm 9120ルートS 74808K 0 1136K 476K 520K 48K 1920K 0 0 crond 9173 xfs S 20904K 0 1828K 1124K 88K 104K 3084K 0 0 xfs
特定のプロセスに関心がある場合は、適切なフィルター(スレッドを表示するスイッチを含む)を指定できます。
また、メモリ全般に興味がある場合は、スラブの詳細を表示したり、vmstat形式の出力を表示することもできます。既存のツールで既に表示されているのに、なぜvmstat形式でデータを表示したいのですか?それは簡単です-まとめてファイルに統計を記録し、後で複数の形式で再生できます。
それを試して、あなたはそれを好きになるでしょう
うーん、gnuplotのよくある質問では、円グラフをサポートしていませんが、Bernhard Reiterの円グラフを提案しています。
詳細は説明しませんでしたが、collectlには区切り文字で区切られた出力を生成するオプションがあります。そのため、gnuplotの場合は、スペースを含むデータを生成するだけで設定は完了です。Excelにうまくロードされます。コンマが必要な場合は、区切り文字を変更でき、本当にrrdルートを実行したい場合(プロットがデータと一致する必要はないので注意してください!)、区切り文字をコロンに変更し、タイムスタンプをUTCに変更することもできます。-マーク
kSarはsarデータに基づいていますが、Javaベースなので、プラットフォームに依存せず、リモートホストにsshしてデータを取得できます。
phpsysinfoを使用すると、何らかの方法でプロセス情報を表示できませんか?