個々のプロセスのCPUとメモリ使用量の監視

個々のプロセスのCPUとメモリ使用量の監視

AIXサーバーでは、単一プロセスのCPUとメモリー使用量をモニターする必要があります。プログラムは1日3回行われます。特定の間隔(たとえば、10分ごと)で統計をキャプチャする方法を見つける必要があります。

答え1

全体的なシステム統計を収集することをお勧めしますnmonそしてそれらを解析nmon-analyzerまたはnmon2rrd- 1つのプロセスでも。関連するものがあれば便利です。svmonメモリ使用量の監視にも使用できます。

以下は、AIXプロセスとシステムのモニターに関する良い記事です。

答え2

私はaixがgnu / linuxと同様に動作すると思います。 /etc/cron.d/ にファイルを作成します。 「モニター」と呼びます。grep processnameその部分をプロセス名に変更してください。

# +---------------- minute (0 - 59)
# |  +------------- hour (0 - 23)
# |  |  +---------- day of month (1 - 31)
# |  |  |  +------- month (1 - 12)
# |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
# |  |  |  |  |
# *  *  *  *  *  user    command to be executed
*/10 *  *  *  *  root    ps aux | grep processname >>/var/log/mylog.log

/var/log/mylog.log に次の行を追加します。

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

rootがない場合は、ps auxの前にユーザー名rootを省略してcrontab -eユーザーで始めることができ、出力は/var/log/にリダイレクトされてはいけませんが、$ HOME /を使用する必要があります。

答え3

私は完全なスクリプトではなく、単にアイデアを提供するだけです。要件に合わせて変更する必要があります。

CPU使用量とメモリ使用量を監視するために使用するコマンドはですps。私は旗を信じて-C支える-oAIX仕える人。ただし、man psコンピュータでその構文を見つけることができます。

ps -C program_name -o %cpu,%mem

それでは、サーバーで10分ごとに6回実行するために、次のスクリプトを入れてみましょう。私はこれを1時間ほど10分ごとに監視する必要があると仮定します。

i=6
filename=$(echo memory_monitoring_`date +%F_%T`)
touch $filename
while [ $i -ge 1 ]
do
    sleep 600 #sleep for 10 minutes. 
    ps -C program_name -o %cpu,%mem >> "$filename"
    i=$((i-1)) 
done

そのため、デフォルトでは上記のスクリプトを使用してメモリを監視する必要があるたびに新しいファイルを作成します。その後、1時間スクリプトを実行すると、i設定が6になっていることがわかります。sleep 60010分ごとにメモリを監視するために使用されます。

最適化が必要な場合は、mail監査目的で使用するために生成されたファイルを自分に電子メールで送信するコマンドを追加できます。

設定が非常に簡単でcron便利な多くのオンラインチュートリアルを見つけることができます。

関連情報