System Activity Grapher - 概要†
機能概要†
SAG (System Activity Grapher)は、システムの動作状態を測定・記録し、
各測定項目をグラフ化して表示するスクリプト集です。
SAGの生成するグラフを定期的に監視することで、
システムリソースの使用状況の解析や動作異常の検出に
活用することができます。
- シンプルな実装
- 小さなスクリプトを組み合わせて実装しているため、改造が容易です。データの取得方法さえ分かれば、新しい測定項目を追加することもできます。
- 低負荷なデータ取得
- データの取得動作は、基本的にはデータをファイルに追記するだけで、特別な加工は行いません。また取得プロセスは低優先度で実行されるので、システムの本来の動作に与える影響はわずかです。Linux/PC98が動作する486DX 66MHz、メモリ14MB、HDD 340MBという低スペックマシンでの動作実績もあります。
- 少ない占有容量
- スクリプトは合計で10キロバイトほどです。取得データは圧縮されアーカイブされます。記録されたデータを含めても、最大で10メガバイト程度です。
- 長期間の傾向把握
- 最大99日間の期間を分解能1分で記録します。データは一時間単位で集約・表示されますので、システムの長期にわたる動作傾向を把握するのが容易です。逆に、グラフ作成は一時間に一回だけなので、リアルタイムでの監視には向いていません。
対応システム†
SAGは、Bourne Shellスクリプト、Perlスクリプトで記述されており、
これらの言語処理系がインストールされたUnix系OSで動作します。
SAGの動作には、以下のものが必要です。
- Perlインタプリタ
- Bourne Shell系のコマンドインタプリタ
- グラフ生成ソフト gnuplot
- 画像ファイル変換ユティリティ netpbm (ppmtogifコマンドを使用)
- システムの状態を取得するためのインタフェース
- Linux互換の/procファイルシステム
- 又は、同様な情報を取得できるシステムコマンド
現在提供しているスクリプトでは、以下のシステムをサポートしています;
- Linux 2.0 - 2.4
- Linux 2.6
- SunCobalt RaQ3, RaQ550
- OpenBSD 3.0~
現在SAGがサポートしている測定機能は以下のとおりです。
項目 | 測定間隔 | 表示値 | 備考 |
ロードアベレージ | 1分 | 最小・平均・最大 | |
プロセス起動数 | 1分 | 最小・平均・最大 | Linuxのみ対応 |
ネットワークトラフィック | 1分 | 送受信それぞれの平均・最大 | |
CPU温度 | 5分 | 最小・平均・最大 | Sun Cobaltのみ対応 |
ファン回転数 | 5分 | 最小・平均・最大 | Sun CobaltRaQ 550 のみ対応 |
メモリ使用状況 | 5分 | TEXT,キャッシュ, スワップの使用率 | |
ディスク使用率 | 1時間 | 各パーティションの使用率 | |
データ取得は、上の表のように項目毎に一定の間隔で
行われ、一時間に一回、集計結果をグラフ画像として生成します。
上の表で「最小・平均・最大」とあるのは、
1分または5分間隔で取得したデータの一時間あたりの最小値、
平均値、最大値を算出し、3本のグラフとして描くという意味です。