2.4. 監視する対象

先に述べたように、各システム内にあるリソースは CPU 処理能力、ハンド幅、メモリ、ストレージです。一見したところ、監視にはこれら 4 つの要素を調べればよいように見えます。

しかし、それほど単純なわけではありません。例えば、ディスクドライブをあげてみます。そのパフォーマンスについて知るには何が必要ですか?

ディスクドライブのパフォーマンスを調べるのには他の方法もあります。これらのポイントはほんの数例です。注意すべき主要なコンセプトは各リソースには様々なデータタイプがあるということです。

次のセクションでは使用情報のタイプについて解説しています。各主要リソースごとに見ていくのに役立つと思います。

2.4.1. CPU 処理能力を監視する

もっとも基本的なこととして、CPU 処理能力の監視は CPU 使用率が 100% に達しているかどうかを確認する以外に難しいことはありません。CPU の使用率が 100% 以下を保持しているなら、システムの動作に関係なく他の処理に使える余分な処理能力があるということになります。

しかし、一時的にでも CPU 使用率が 100% に到達しないシステムはまれです。この点で、CPU 使用率の詳細なデータを調べることが重要となります。これにより、処理能力の主要な部分が消費されているところの調査を開始することができます。次に、一般的な CPU 使用率の統計値をいくつか示します。

ユーザー対システム

ユーザーレベルの処理とシステムレベルの処理を行うのに使用される時間の割合でシステムの負荷が主に実行中のアプリケーションにあるのか、オペレーティングシステムのオーバーヘッドにあるのかを見極めることができます。ユーザーレベルの割合が高い場合はよい傾向にありますが(ユーザーがパフォーマンスに不満足感を訴えていないと仮定した場合)、システムレベルの割合が高い場合はさらに調査を要する問題を指している傾向にあります。

コンテキストスイッチ

コンテキストスイッチは CPU が 1 つのプロセス実行を停止して別のプロセスを実行開始するときに発生します。各コンテキストスイッチの発生にはオペレーティングシステムが CPU を制御している必要があるので、過剰なコンテキストスイッチや激しいシステムレベルの CPU 消費は同時に起こる傾向があります。

割り込み

その名の通り、割り込みは CPU によって行われる処理が突然変わるという状況です。割り込みは一般的に、ハードウェアのアクティビティ(I/O デバイスが I/O 処理を完了するなど)またはソフトウェアのアクティビティ(ソフトウェアがアプリケーションの処理を制御するなど)によって発生します。割り込みはシステムレベルで行われなければならないため、割り込み率が高いとシステムレベルの CPU 消費が高くなります。

実行可能なプロセス

プロセスにはさまざまな状態があります。例えば、

  • I/O 処理の完了を待っている

  • メモリ管理サブシステムがページフォルトを処理するのを待っている

こうした場合、プロセスは CPU を必要としません。

ただし、最終的にプロセスの状態が変わると、そのプロセスは実行可能なります。その名の通り、実行可能プロセスは CPU 時間を受け取るようスケジュールされるとすぐに作業を完了できるようになるプロセスです。しかし、特定時に複数のプロセスが実行可能になると、1 つのプロセス[1]以外すべての実行可能プロセスは CPU で順番を待たなければなりません。実行可能なプロセスの数を監視するとそのシステムがどのくらい CPU-bound であるか測定することができます。

CPU 使用率への影響を反映するその他のパフォーマンス測定基準には、オペレーティングシステムが処理のため提供するさまざまなサービスが含まれる傾向があります。メモリ管理、I/O 処理などの統計値です。また、こうした統計値では、システムパフォーマンスが監視されるとき各種統計値間に境界がないことがわかります。つまり、CPU 使用率の統計値が I/O サブシステムでの問題をポイントして終了したり、メモリ使用率の統計値がアプリケーション設計上の弱点を明らかにする場合があるということです。

したがって、システムパフォーマンスを監視するときはいずれの統計値も完全に切り離して調べることはできません。全体像を調査することによってのみ、収集するパフォーマンスの各統計値から必要な情報を抽出することができます。

2.4.2. バンド幅を監視する

バンド幅の監視はここで説明する他のリソースに比べて複雑です。パフォーマンスの統計値がデバイスベースになる傾向であるのに対し、ハンド幅が重要となる箇所のほとんどがデバイスに接続するバスになる傾向があるためです。複数デバイスが 1 つの共通バスを共有する場合、各デバイスの合理的な統計値を得ることができますが、これらのデバイスがバスに与える総計負荷はかなり大きくなります。

ハンド幅の監視のもうひとつの難題はデバイス自体の統計が得られない可能性がある場合です。特にシステム拡張バスとデータパス[2]の場合です。ただし、統計が得られてもハンド幅関連の統計値は必ずしも 100% であるとは限りません。特に、関連統計値を考慮に入れるなど、ほとんどの場合、ある程度の分析ができる程度の情報です。

一般的なバンド幅関連の統計値をいくつかあげておきます。

受信/送信バイト

ネットワークインターフェースの統計値は目に見えるバスのバンド幅使用率を示します — ネットワーク。

インターフェースカウントとレート

こうしたネットワーク関連の統計値では、発信や受信エラーなどの過剰な衝突を示すことができます。こうした統計値で(特に統計値がネットワーク上の複数システムに関して得られる場合)、一般的なネットワーク診断ツールを使用する前に若干のネットワークトラブルシューティングを行うことができます。

毎秒の送信

通常、ディスク、高性能なテープドライブなどのブロック I/O デバイス用に収集され、この統計値は特定デバイスのハンド幅がリミットに達しているかどうかを測定するのに役立ちます。その電子構造上、ディスクやテープデバイスは毎秒かなりの I/O 処理だけを行います。このリミットに達するとパフォーマンスは急速に低下します。

2.4.3. メモリを監視する

豊富なパフォーマンス統計値が得られるエリアがあるとすれば、メモリ使用率を監視するエリアです。最近の demand-paged 仮想メモリオペレーティングシステムは複雑なため、メモリ使用率の統計値は多種多彩です。システム管理者のリソース管理作業の大半がここにあります。

次に一般的に見られるメモリ管理の統計値の簡単な概要を示します。

ページイン/ページアウト

これらの統計値でシステムメモリから接続された大容量ストレージデバイス(通常、ディスクドライブ)へのページフローを測定することができます。これら統計値のいずれのレートも高いとシステムに物理メモリが不足していて、アプリケーションを実行するよりページのメモリへの入出により多くのシステムリソースが消費またはスラッシングされているということになります。

アクティブなページ/非アクティブなページ

これらの統計値はどのくらい頻繁にメモリ常駐ページが使用されているかを表示します。非アクティブなページの不足は物理メモリの不足を指している傾向があります。

空きページ、共有されたページ、バッファされたページ、キャッシュされたページ

これらの統計値はより簡潔なアクティブ/非アクティブなページの統計値について補足詳細を示します。これらの統計値を使ってメモリ使用率の総合的な部分が測定できます。

Swap In/Swap Out

これらの統計値はシステムの全体的なスワッピング動作を表示します。ここでの過剰なレートは物理メモリの不足を示しています。

正しいメモリ使用率の監視には demand-paged 仮想メモリオペレーティングシステムがどのように動作するのかをよく理解しておく必要があります。これだけを説明するのにもガイド 1 冊分かかりますが、基本的なコンセプトは章4章で説明されています。この章では、システムの監視にかかる実際の時間の他に、この動作について知っておく必要がある基本部分を説明しています。

2.4.4. ストレージを監視する

ストレージの監視は通常、2 レベルに分けられます。

その理由として、あるエリアには極端な問題が見られるのに他のエリアにはまったく問題が見られないことがあり得るからです。例えば、いままでまったくパフォーマンス関連の問題がなかったディスクドライブにディスク領域がなくなってしまうことがあり得ます。同様に、ディスクドライブに 99% の空き領域があるのに、パフォーマンスの点でリミットを越えそうになっていることがあります。

しかし、平均的なシステムはいずれのエリアでもさまざまなレベルのリソース不足になる可能性があります。このため、特定のエリアでの問題は —ある程度— 他のエリアにも影響する可能性があります。この種の相互作用はほとんどの場合ディスクドライブが 0% の空き領域に近付くにつれ I/O パフォーマンスが低下していく形態をとりますが、極端な I/O 負荷の場合にはそのアプリケーションが正しく実行しなくなってしまうレベルまでに I/O スループットが低下することもあります。

いずれの場合も、ストレージを監視するのには次の統計値が役に立ちます。

空き領域

空き領域とは恐らくすべてのシステム管理者が詳細に観察しているリソースのひとつでしょう。空き領域をチェックしない管理者は珍しいと言えます(または、空き領域のチェックに自動化した方法を用いている)。

ファイルシステム関連の統計値

これらの統計値(ファイル/ディレクトリの数、ファイルサイズの平均など)は空き領域率に対して補足的な詳細を示します。このように、これら統計値でシステム管理者はシステムを最適なパフォーマンスにすることができます。数多の小さなファイルで満杯になったファイルシステムによる I/O 負荷は単一の重いファイルで埋まったファイルシステムによる I/O 負荷とは異なるからです。

毎秒の送信

この統計値は、特定のデバイスのバンド幅が限界に達したかどうかを測定するのに役立ちます。

毎秒の読み込み/書き込み

毎秒の転送についてのブレークダウンを示すこの統計値で、ストレージデバイスに加わる I/O 負荷の性質を十分に理解することができます。これが非常に重要になることがあります。読み込み処理と書き込み処理に多様な動作性質の違いが見られるストレージ技術もあるからです。

注記

[1]

シングルプロセッサのコンピュータシステムと仮定した場合

[2]

バス、データパス及びバンド幅についての詳細は章3章を参照