PC の動作が遅いですか? Windows の Perfmon を使用して問題を特定する方法を学びます。

最終更新: 14/08/2025

  • PerfMon は、正確で構成可能なカウンターを使用して、リアルタイムの測定と長期の記録を可能にします。
  • Collector Sets と Logman は、サーバー上での繰り返しキャプチャと自動化を容易にします。
  • メモリ、CPU、ディスク、ネットワークのしきい値は、ボトルネックやリークの検出に役立ちます。
  • 信頼性モニターは、障害や互換性の問題を表示することで分析を補完します。

Windows 上の PerfMon パフォーマンス モニター

パフォーマンスモン (パフォーマンスモニタ)です Windows監視のための究極のツールPerfMon: CPU、メモリ、ディスク、ネットワーク、特定のプロセスのパフォーマンス指標をリアルタイム、長期にわたって表示し、分析できます。タスクマネージャーとは異なり、PerfMonは定期的にサンプルを採取し、ディスクに記録します。そのため、サービスやアプリケーションにおけるメモリオーバーフローやリソースリークなど、数時間実行した後に初めて表面化する問題の追跡に最適です。

この記事ではあなたに見せます PerfMon の使い方。 適切なカウンターの選択と理解、チャートのサンプリングとスケーリングの調整から、メトリックをファイル (BLG/CSV) に記録するためのデータ コレクター セットの作成まで、さまざまな内容を説明します。

PerfMon とは何ですか? いつ使用すればよいですか?

 

パフォーマンス モニター (PerfMon) は、ネイティブの Windows カウンター ビューアーおよびレコーダーです。システムおよびアプリケーション カウンター (.NET CLR または特定のプロセスなど) から取得されたグラフおよび生データの形式でメトリックを表示します。 「高速」ユーティリティに対する最大の利点は、 タスクマネージャ 定期的なサンプルを使用して、数時間または数日間実行したままにして、実際の傾向 (ピーク、ベースライン、持続的な成長) を検出できることです。

パフォーマンスモン にとって重要です メモリ増加、ハンドルまたはスレッドのリークを診断する特定のテストを実行して、問題のあるコンポーネントを特定します。例えば、メモリリークが疑われる場合は、影響を受けるプロセスのプライベートバイト数、ハンドル数、スレッド数などのカウンターに加え、.NET CLRメモリカウンター(全ヒープ内のバイト数や.NETアプリケーションの場合はGen 2ヒープサイズなど)を有効にして、メモリ増加がGC中かGC外かを確認します。

PerfMon を開き、モードを /res /report /rel /sys に変更します。

PerfMon を開く方法と特殊モード

 

PerfMonを開くことができます スタートメニューから「パフォーマンス」または「perfmon」を検索し、管理者として実行します。 ログを作成したり、リモート コンピューターを照会したりする場合。

あなたが好むなら コマンドライン (Win+R または CMD) の場合、次の構文を使用した非常に便利な直接モードがあります。

perfmon </res|report|rel|sys>

各オプションは何をしますか?

  • / res リソースビューを開くには
  • /報告 システム診断コレクター スイートを起動し、レポートを表示します。
  • / rel 信頼性モニターを開きます。
  • / sys 従来のパフォーマンス モニターに直接移動します。

評議会: 機器の信頼性を確認したい場合は、 パフォーマンスモニタ/ REL これは、安定性とバグ履歴への直接の近道です。

信頼性モニター コントロールパネル > システムとセキュリティ > セキュリティとメンテナンスにもあります。もう一つのショートカットは、スタートメニューの検索に「reliab」と入力し、「信頼性の履歴の表示」を選択することです。重要なイベント、警告、日別または週別の情報が表示され、以下の情報にアクセスできます。 技術的な詳細 アプリケーションおよびドライバーの障害。

限定コンテンツ - ここをクリックしてください  Surface Laptop 4からバッテリーを取り外す方法は?

リアルタイム可視化:カウンターの追加と理解

 

見るために ライブチャート左側のツリーから「パフォーマンスモニター」を開きます。プリロードされたカウンターがあり、クリーンアップを開始する場合は、下の表から選択して デル。 次に、グラフ領域で右クリックし、「カウンターの追加…」を選択して、利用可能なすべてのカテゴリを含むダイアログを開きます。

選択します 関心のあるカテゴリ、カウンター、オブジェクトインスタンス (例:プロセス)。特定のアプリのメモリとリソースを診断するには、グループからこれらのキーカウンタを追加します。 プロセス y .NET CLR メモリ 適切な場合:

  • プロセス\プライベートバイト: プロセスによって割り当てられたプライベートメモリ(他のプロセスと共有されません)。持続的な増加は、プロセス自身の仮想メモリの実際の消費量を示します。
  • プロセス\ハンドル数: 開いているハンドルの数。一定の割合で増加する場合は、リソースリーク(セッション、システムオブジェクト)が発生している可能性があります。
  • プロセス\スレッド数: プロセス内のアクティブなスレッドの数。予期しない急増は、同時実行の問題または未完了のスレッドを示している可能性があります。
  • .NET CLR メモリ \ 全ヒープ内のバイト数: .NETオブジェクトの合計メモリ。安定せずに増加する場合は、GCの負荷と未解放の参照を確認してください。
  • .NET CLR メモリ \ Gen 2 ヒープサイズ: Gen 2 ヒープサイズ(長期アイテム)。継続的な増加は、未収集の長期アイテムが存在することを示しています。

批判的な目でグラフを解釈するすべてのヒープ内のバイト数とGen 2ヒープサイズが安定しているにもかかわらず、プライベートバイトが着実に増加していることに気付いた場合、増加は.NETヒープではなく、プロセスのネイティブメモリ/予約領域で発生しています。このパターンは通常、GC外部のリーク(例:フリーズされていないバッファやハンドル)を示しています。

PerfMon のスケールと間隔の設定

グラフのスケール、間隔、期間を調整する

PerfMonは 各カウンターの表示と履歴期間を調整する。 押す Ctrl + Shift + A 下のリストにあるすべてのカウンターを選択するには、右クリックして 選択したカウンターのスケール、1 つが残りを「平坦化」することなく、すべてが表示されるようになります。

開く チャートのプロパティ 右クリック > 「プロパティ…」を選択し、「全般」タブでサンプリングレートを設定します。例えば、10秒ごとにサンプリングし、「期間」を10000に設定すると、約2,5時間分のビューをカバーできます。現象が長引くほど、ファイルのサイズが大きくなりコンピューターに過負荷がかかるのを防ぐため、サンプリングレートの間隔を広くする必要があります。

追加のヒントPerfMon は ActiveX のプロパティとメソッドを公開しており、他の開発ツールから統合または制御したり、必要に応じて独自のアプリケーションにコントロールとして埋め込んだりすることもできます。

Logman で自動化: 作成、開始、停止

 

Logman.exe は、カウンター セットを作成および管理するためのコマンド ライン ユーティリティです。管理者権限でコマンド プロンプトを開き、次のようなコマンドを実行して、循環ファイルを含む大規模な継続的な監視スイートを作成します。

限定コンテンツ - ここをクリックしてください  ホーンのパワーの測り方

Logman.exe create counter Avamar -o "c:\\perflogs\\Emc-avamar.blg" -f bincirc -v mmddhhmm -max 250 -c "\\LogicalDisk(*)\\*" "\\Memory\\*" "\\Network Interface(*)\\*" "\\Paging File(*)\\*" "\\PhysicalDisk(*)\\*" "\\Processor(*)\\*" "\\Process(*)\\*" "\\Redirector\\*" "\\Server\\*" "\\System\\*" -si 00:00:05

キャプチャの開始と停止、 使用:

Logman.exe start Avamar
Logman.exe stop Avamar

コマンドのヒント:-f bincirc は循環バイナリログを作成します(-max はサイズをMB単位で制限します)。-si はサンプリング間隔を定義し、-c はオブジェクトとそのインスタンスのカウンターを一括追加します。スクリプト作成時や設定のエクスポート時には、パスを引用符で囲み、バックスラッシュをエスケープしてください。

Logman はいつ使用すればよいですか? それは理想的です 長距離データを収集する サーバーでは、診断を自動化したり、複数のマシン間でキャプチャを標準化したりできます。タスクスケジューラでスケジュールを設定すれば、操作なしでファイルをローテーションできます。

パフォーマンスカウンターのしきい値

サブシステムごとの便利なカウンターとしきい値

メモリ: 実容量、ページング負荷、システムプールの枯渇を監視します。以下のカウンターとガイドラインは、症状と原因を区別するのに役立ちます。

  • メモリ \ % 使用中のコミットバイト数: コミットされたメモリのうち、コミットメント制限を超える割合。常に80%を超える場合は、ページングファイルのサイズと実際の使用量を確認してください。
  • メモリ \ 使用可能MB: 物理メモリの空き容量。RAM の 5% 未満が繰り返し低下する場合は調査してください(1% 未満は危険です)。
  • メモリ \ コミットバイト数: コミットされたバイトの合計。急激に変化することは避けてください。頻繁に変更するとページファイルが拡張される可能性があります。
  • メモリ \ プール非ページバイト: 非ページ プール (ディスクにフラッシュできないオブジェクト)。 持続的な飽和(> 80%) これらは、2019 年 (非ページ プールの枯渇) などのイベントに関連付けられています。
  • メモリ \ プールのページバイト数: : ページプール。最大値の 70% を超える値が継続する場合は、2020 イベント(ページプール枯渇)のリスクがあります。

プロセッサ: 持続的な負荷や重い I/O 信号、またはノイズの多いドライバーを探します。

  • プロセッサ情報 \ % プロセッサ時間 (すべてのインスタンス): 90 つの CPU で 1% 以上が持続する場合、またはマルチプロセッサで 80% 以上が持続する場合は、CPU が過負荷になっていることを示します。
  • プロセッサ \ % 特権時間: カーネルモード時間。アプリ/Webサーバーで継続的に30%を超える場合は、ドライバーまたはシステムの負荷が高すぎる可能性があります。
  • プロセッサ \ % 割り込み時間 y DPC時間の割合: > 25% は、デバイスのアクティビティ (NIC、ディスクなど) が集中していることを示しています。
  • システム\コンテキストスイッチ/秒 y プロセッサ \ 割り込み/秒: コンテキスト切り替えの圧力と割り込みアクティビティを表示するのに便利です。

レッド: NIC の健全性と通信品質を示します。

  • ネットワークインターフェース\受信パケット破棄: ゼロに近い値を維持する必要があります。値が上昇すると、通常、バッファ/ハードウェアが不十分であることを示します。
  • ネットワークインターフェース\受信パケットエラー: : エラーが 2 件以上継続する場合は、リンク/ケーブル/ドライバーの確認が必要です。

ディスコ: 飽和度、レイテンシ、容量を測定します。

  • 物理ディスク \ % アイドル時間: アイドル時間の割合。低い状態が続くとディスクがビジー状態であることを示し、残りの容量を反映しています。
  • 物理ディスク \ 平均ディスク秒/読み取り y 平均ディスク秒/書き込み: 平均レイテンシ。一般的な基準 (ガイドライン): 読み取り: 非常に良い (8 ミリ秒未満)、許容範囲: 12 ミリ秒未満、普通: 20 ミリ秒未満、悪い: 20 ミリ秒超。書き込み: 非常に良い (1 ミリ秒未満)、良好: 2 ミリ秒未満、普通: 4 ミリ秒未満、悪い: 4 ミリ秒超。
  • 物理ディスク \ 平均ディスクキューの長さ: 平均的な裾。2×未満の値は通常妥当です。
  • 物理ディスク \ 分割IO/秒: 断片化またはブロックサイズの不足によりI/Oが分割されています。低いほど良いです。
  • 論理ディスク \ % 空き容量: システムの論理ボリュームには常に 15% 以上の空き領域を残しておきます (25% 以上を推奨)。
限定コンテンツ - ここをクリックしてください  PlayStation 5 でメカニ​​カル キーボードを接続して使用する方法

ディスクオブジェクト: 物理 vs. 論理.

  • 物理ディスク 物理デバイスのすべてのパーティションへのアクセスを追加します (ハードウェアを識別します)。
  • 論理ディスク 特定のパーティションまたはマウントポイントを測定します。ダイナミックディスクでは、論理ボリュームは複数の物理ディスクにまたがることができ、そのカウンターは合計を反映します。

プロセス: リソースと特定のアプリの動作を相関させるには、監視します プロセス \ % プロセッサ時間, プライベートバイト, 仮想バイト y ワーキングセット. ハンドル数 プールの水漏れが疑われる場合は、 ハンドル 異常な増加を伴う結婚が多い プール非ページ/ページ.

信頼性モニター: 障害と互換性を調査する

Windows信頼性モニターは、日別または週別に安定性とイベントを要約します。、分類 重大、警告、情報各列から「技術詳細の表示」を開いて、関連するバイナリのモジュール、コード、デジタル署名を検査できます。

  • 実例svchost.exe_MapsBroker などのクラッシュを引き起こすアプリケーションなどのエントリが見つかります。報告されたモジュール(例:Kernelbase.dll)がWindowsカーネルに属し、Microsoftによって署名されている場合、根本原因はカーネルではなく、ユーザー空間で実行されているアプリケーションまたはプラグインにあると考えられます。
  • 古いアプリが故障した場合の対処法インターフェースやパフォーマンスに問題がある場合は、互換性トラブルシューティングツールを実行し、互換モード(例:Windows 7)を強制的に有効にし、高DPIスケーリングを無効にしてみてください。この設定により、レガシーソフトウェアのクラッシュが解決されることが実証されています。
  • 安定性の調査結果をPerfMonにリンククラッシュ履歴とカウンターログを組み合わせることで、クラッシュ前にプライベートバイト、ハンドルカウント、ディスクレイテンシが高かったかどうかを確認できます。この相関関係により、スレッドを抽出できます。
  • 実質的な閉鎖: PerfMon と Reliability Monitor を使用すると、明確にガイドするカウンターとしきい値によってサポートされ、症状 (クラッシュ、速度低下) から原因 (メモリ リーク、ディスク ボトルネック、CPU 100%、ネットワーク エラー) までを診断できます。

必要な場合 始めるためのクイックガイド: PerfMon を開き、対象プロセスのカウンター (プライベート バイト、% プロセッサ時間など) を追加し、問題が発生したウィンドウをカバーするようにサンプリングと期間を調整し、コレクター セットを使用してファイルにログを記録し、該当する場合は、何時間も実行する必要があるサーバーまたはテスト環境で Logman を使用して自動化します。