パフォーマンスモニターでCPUやメモリ使用率を記録する(1)基本編

Windows全般
スポンサーリンク

今回はWindows Serverのパフォーマンス情報についてです。タスクマネージャーでは、”今の”CPU使用率などを確認できます。しかし例えば「3日前の状態が見たい」場合はどうするのでしょうか。標準ツールのみで簡単に記録できる方法を紹介します。

計測結果のイメージ

パフォーマンスモニター」という標準ツールを使います。はじめに、計測した結果から見てみましょう。

こんなイメージです。CPU使用率やメモリ使用率などの推移がグラフで見れます。これらがあれば、例えば「昨日の○○時頃、システムの動きが遅かった」という問い合わせから、サーバー負荷が原因かどうかを切り分けることができるでしょう。ところでこのツール、今時にしてはあまり格好良くはないですね(Windows Server 2003くらいからあまり変わっていません)。

24時間稼働のサーバーを想定し、基本的に丸1日監視し、日ごとの計測データを確認できます。(画像はサンプルのため1時間弱のデータしかありません)

テンプレートXMLファイルの準備

標準ツールで実現できますが、一から設定するのは大変です。今回は、筆者が作成したテンプレートファイルを使います

下のリンクからダウンロードして下さい。zipファイルを展開し、「PerfSummary.xml」ファイルを監視対象サーバーにコピーしておきます。

設定方法

パフォーマンス計測設定手順
  • step1
    パフォーマンスモニターの起動

    スタートメニューから「パフォーマンスモニター」を検索して、検索結果から同アプリを起動します。

  • step2
    データコレクトセットの新規作成

    左のツリーから[データコレクトセット]>[ユーザー定義]を右クリックし、[新規作成]>[データコレクトセット]を選択します。

  • step3
    名前と作成方法を指定

    下のように指定します。名前は任意ですが、ここでは「PerfSummary」としておきます。

  • step4
    テンプレートファイルを参照

    テンプレートは、標準のものではいまいち目的に沿わないため、「参照」ボタンから上でダウンロードしたXMLファイル(PerfSummary.xml)を指定します。

  • step5
    ウィザードの通り進める

    XMLファイルを指定した後は、下図の通りウィザードに従い、デフォルトのまま進めます。最後に「完了」ボタンを押してウィザードを終了します。

  • step6
    確認

    このあと、下図のように「ユーザー定義」以下に、新しい項目(PerfSummary)が出来ていればOKです。

追加設定(一部のOSのみ)

2022年2月時点において、OSがWindows Server 2019の場合、追加の設定が必要です。そうでないと、パフォーマンスモニターで指定したスケジュール通りに測定開始されません

不具合のような感じですので、後のアップデートで解消されるかもしれません。なお、2022年2月時点の更新プログラムで確認した限りでは、Windows Server 2022 および Windows 11 / 10※ はこの問題が起きないため設定不要です。

※Windows 10は、2021年4月時点ではこの問題が発生していましたが、現在は解消されたようです。

設定の要否は「測定のテスト」で判断

この設定が必要かどうか判断するには、先に後述の「測定のテスト」を実施してみます。

記載の通りに動作しない(タスクスケジューラのタスクを実行しても、パフォーマンスモニターの「PerfSummary」に再生マークが付かない場合)のみ、以下の設定が必要です。

追加設定手順(Windows Server 2019 / 以前のWindows 10 のみ)
  • step1
    タスクスケジューラの起動

    スタートメニューから「タスクスケジューラ」を起動します(起動方法)。

  • step2
    項目[PLA]のプロパティを開く

    左のツリーから、[タスクスケジューラ ライブラリ] > [Microsoft] > [Windows] > [PLA] を開き、作成したデータコレクトセットの名前(ここでは PerfSummary)のプロパティを開きます。

  • step3
    カスタムハンドラーの削除

    「条件」タブの「カスタムハンドラー」を選択し「削除」ボタンで消します。

  • step4
    操作の新規追加

    そして、「新規」ボタンから、次の通り入力します。

    操作プログラムの開始
    プログラム/スクリプトC:\windows\system32\rundll32.exe
    引数の追加C:\windows\system32\pla.dll,PlaHost “PerfSummary” “$(Arg0)”
    ※太字の部分はデータコレクトセットの名前を指定
  • step5
    設定の確定

    「OK」ボタンで確定します。これで完了です。

測定仕様

上の手順では、次のように測定されます。

測定スケジュール毎日 AM4:00~ 翌日 AM3:30
※3:30~4:00は測定されない
※測定中で再起動した場合はその時点まで
測定間隔1分毎
測定データ・CPU使用率
・メモリ使用率
・ストレージ IOスループット
・ネットワークトラフィック
・その他
※代表的なパフォーマンス指標
測定データの保持期間過去30日間分(それ以前の分は自動削除)
測定データのサイズ約6MB程度/日 (環境によって異なる)
30日分で概ね180MB必要
測定データの保存先C:\PerfLogs\Admin\PerfSummary
その他 (*1)・保存先ドライブ空き容量が5GB未満の場合は測定しない
・合計データが1GBを超える場合、古いものから自動削除
・1日のデータサイズが500MBを超えたら測定停止

*1… 想定データサイズは30日で約180MBだが、万が一のためにパンクしないよう講じる安全措置

測定のテスト

上記の手順の実施直後は、まだ測定は開始されていないはずですし、測定データもありません。AM4:00から自動開始され、その結果を確認できるのは、さらにその翌日3:30以降です。そこまで待って、正常に測定されていなかったら悲しいので、テストで2~3分測定してみましょう。

まず、上の「追加設定方法」と同様に、スタートメニューから「タスクスケジューラ」を起動します(起動方法)。

左のツリーから、[タスクスケジューラ ライブラリ] > [Microsoft] > [Windows] > [PLA] を開き、作成したデータコレクトセットの名前(ここでは PerfSummary)を右クリックして「実行する」を選択します。

パフォーマンスモニターで、下図のように「PerfSummary」のアイコンが変わって、再生マークがついていれば測定中です。ついでに「レポート」にもデータが追加されます(計測を終了するまで見れません)。測定中にならない場合は、前項のタスクスケジューラの設定を見直して下さい。

2~3分経ったら、上図のPerfSummaryを右クリックし「停止」を選択してください。測定が止まり測定結果のグラフを確認できるようになります。停止し忘れると、次のAM4:00に測定が始まらず、測定スケジュールがずれます。

測定結果の確認方法

測定された結果を確認するには、パフォーマンスモニタを起動し、ツリーの[レポート] > [ユーザー定義] > [PerfSummary](データコレクタセットの名前)から、参照した日時の項目を選択します。デフォルトではレポートが表示されるため、ツールバーのグラフのマーク(下図の赤枠参照)をクリックするとグラフが表示されます。なお、現在測定中の分は、測定が終了するか停止させるまで見れません。

ちなみに、グラフを表示したときに次のエラーが表示されることがあります。原因はわかりませんが、私は毎回出くわします。特に支障はないようなので無視します。

グラフ値はどれがどれだかわかりませんね。上部ツールバーのペンのマークを押した状態で、下から参照したい項目をクリックすると、その項目のグラフがハイライトされます。

測定項目の説明・測定条件の変更方法

測定スケジュールを変更したり、もっと多くの測定項目を指定する方法などについては、下の記事にまとめています。

おわりに

今回の記事は以上です。

当サイトでは、ITインフラ関連の知識やノウハウをメインに紹介しています。下の関連記事にも役立つ情報があるかもしれませんので、ぜひご覧下さい。

また、知識やノウハウを効率的に学ぶ方法として、Udemy の「ながらセミナーもおすすめです。三日坊主にならず、普段の生活の中でスキルアップする方法です。これについては下の記事で紹介していますので、良ければご覧下さい。

もとだて
もとだて

最後まで読んでいただき、ありがとうございました。

フィードバック

コメント

  1. じゅん太郎 より:

    質問があります。

    多数のPC(win10)バージョン不明でパフォーマンスカウンターを設定する場合は、追加設定のカスタムハンドラーの削除追加の要不要は、どのよう判断すれば良いですか?

    もしくは、最初から全て(2021年4月以降も)のPCに追加設定のカスタムハンドラーの削除追加作業を行って問題ないのでしょうか?

    • フィードバックありがとうございます! ご質問の通り、設定要否が分かりにくかったため、記事本文に追記いたしました。
      ご回答としまして、先に「測定のテスト」を実施してみて、記載の通りに動作すれば追加設定不要です。

      一応、無条件に追加設定のカスタムハンドラーの削除追加作業を行っても問題ないかとは思いますが、前述のテストでNGの場合のみにしたほうが無難かと思います。
      他にもご不明点等ありましたら、教えていただけると助かります。

タイトルとURLをコピーしました