かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.204 ベースラインを把握する-パフォーマンスカウンターとの付き合い方(2)|セイテク・シス管道場(Web)
2026年05月25日配信
執筆者:山内 和朗
「セイテク・シス管道場(Web)」では、Windows Serverの要素技術やシステム管理の基本的な部分に焦点を当てたいと思います。今回は前回に引き続き、パフォーマンスカウンターについて深掘りします。
監視間隔としきい値は、パフォーマンス監視における最重要ポイントです。監視間隔が短すぎると、詳細な監視が可能ですが、監視する側、される側の両方の負荷が増大し、蓄積されるパフォーマンスデータの量が膨大になります。一方、監視間隔が長すぎると、短期的に発生した重大な問題を取りこぼしてしまう可能性があります。また、しきい値が高すぎると、問題に気付くのが遅れる可能性がある一方で、低すぎるとアラートが多発し、そのノイズが原因特定を邪魔するかもしれません。
前回説明したように、主要なパフォーマンスカウンターについては、しきい値の目安がある場合があります。しかし、効果的に監視するためにはベースラインを把握することから始める必要があります。そして、しきい値に引っかかった異常値が瞬間的、単発的なものなのか、継続的な状態であるのかを判断できる監視間隔でなければなりません。また、CPUやメモリのように100%という上限が決まってればベースラインに基づいてしきい値を設定できるかもしれませんが、ディスクやネットワークのパフォーマンスとなると、そう単純ではありません。ハードウェアの能力(スループットや帯域など)や実行環境(QoS制限など)も考慮しなければなりません。
例えば、監視ツールで1時間ごとにCPU使用率(¥Processor Information¥% Processor Time)を取得するとしましょう。その監視にどれだけの意味があるでしょうか?直近2回の両方が100%を示してたとしても、たまたま瞬間的に100%になったのかもしれませんし、1時間ずっと100%だったのかもしれません。監視間隔の間に起きた変動はすべて取りこぼしてしまいます。
次の画面1は、パフォーマンスカウンターのユーザー定義データコレクターセットを利用して、サンプリング間隔1秒、30秒、300秒(5分)でCPU使用率の1時間ログを収集し、グラフ化したものです。途中、意図的に高いCPU負荷を発生させて記録したものです。

画面1 CPU使用率の推移。サンプリング間隔は上から1秒、30秒、300秒(5分)
サンプリング間隔30秒のグラフは、瞬間的なCPU使用率のスパイクを一部取りこぼしていますが、1秒間隔とほとんど大差ない結果を示しました。一方、サンプリング間隔300秒(5分)のグラフは、CPU使用率の細かな変動は見えなくなっていますが、CPU使用率の傾向はしっかりと捉えていると言えます。この結果とともに、私の経験値というか肌感覚として言えるのは、詳細な調査目的のリアルタイム監視(調査対象のローカルのパフォーマンスモニターを使用するなど)には1~10秒、一般的な監視では15~60秒、大規模な監視やリソース使用量の傾向を把握するには60~300秒のサンプリング間隔が適しているのではないでしょうか。
サンプリング間隔の目安:
リアルタイム監視 1~10秒
一般的な監視 15~30秒
大規模監視 60~300秒
なお、CPU使用率のように変動するものではなく、累積するタイプ(あまり存在しませんが) や固定値を示すパフォーマンスカウンターの場合は、長いサンプリング間隔でも正しく監視できる場合があります。
実用的なしきい値監視のために、システムのパフォーマンスのベースラインを把握するためには、一定期間監視を継続し、ピーク時やオフピーク時の時間帯、バッチ処理やメンテナンス業務の影響、季節性や周期性(週次、月次、四半期など)を分析する必要があります。それには利用している監視ツールで行うことも可能ですが、パフォーマンスモニターのユーザー定義データコレクターセットとレポート機能を活用できます(画面2)。多くのパフォーマンスカウンターを短いサンプリング間隔でログに記録する場合は、ログのサイズが膨大になる可能性があるため、パフォーマンスモニターのデータマネージャーなどを活用して、ログ出力先のディスクが溢れないように注意してください。

画面2 ベースライン分析用のデータコレクターセットを作成し、一定期間ログを蓄積する
この連載の以下の回で紹介した、サーバーマネージャーのパフォーマンスは、Windows Serverに定義済みの「Server Manager Performance Monitor」データコレクターセットを使用します。なお、このデータコレクターセットはサーバーマネージャーから「パフォーマンスカウンターの開始」を実行して開始する必要があります。パフォーマンスモニターから開始しようとしても、「データコレクターセットを起動しようとしたとき、次のシステムエラーが発生しました: オペレーターまたは管理者が要求を拒否しました。」と表示され開始することはできません(データコレクターセットに対応したタスクが無効になっているため)。
vol.197 役割管理だけじゃない、サーバーマネージャーの真の価値|セイテク・シス管理道場(Web)5
「Server Manager Performance Monitor」データコレクターセットが収集する一部のカウンターオブジェクトはレガシなオブジェクトですが、CPU、メモリ、およびプロセスに関するパフォーマンスカウンターをサンプリング間隔5分で取得し、ログ(C:¥PerfLogs¥Admin¥ServerManager¥SNPerfMon-yyyyMMddHHmmss-N.log)に記録します(画面3)。ログは24時間で新しいログに変更され、データコレクターセットに定義されたタスクにより(データマネージャーではなく)、最大7日間(604800000ミリ秒)のパフォーマンスデータが保持されます。サーバーマネージャーのパフォーマンスを利用している場合は、最大7日間という期間に限定されますが、ベースラインの把握に流用できます。ログが自動管理されるため、溢れることを心配する必要もありません。
なお、「Server Manager Performance Monitor」データコレクターセットの設定の変更(サンプリング間隔の変更など)や監視対象のパフォーマンスカウンターの追加は可能なようですが、Windows Serverの定義済みの設定を変更すると、意図しない影響があるかもしれないのでお勧めしません。

画面3 サーバーマネージャーのパフォーマンスで使用されているデータコレクターセットのログをベースラインの把握に流用する
データコレクターセットのログはパフォーマンスモニターのレポート機能を利用してグラフやヒストグラム、レポートを使用して分析できますが、ログの期間やサンプリング間隔、パフォーマンスカウンターの数によっては、レポート作成に時間がかかることがあります。また、レポートを作成するにはデータコレクターセットを停止する必要があります。データコレクターセットの実行中は「XX秒間のデータを収集中...」と表示され、いつまで待ってもレポートが表示されません。データコレクターセットの実行中でもログ(.blg)を直接開けば、パフォーマンスモニターでグラフ表示することができます(画面4)。

画面4 ログファイル(.blg)をダブルクリックしてグラフ表示するか、データコレクターセットを停止してレポートを作成する
次回は、データコレクターセットで収集したログにPowerShellからアクセスして、集計や監視を行う方法について説明します。
セイテク・シス管道場(Web) (1) |(2)|(3)|(4) |(5)|(6) |(7)|(8)|(9)|(10)|(11)|(12)