web-dev-qa-db-ja.com

時間ごとのプロセスごとの%CPUのログ

Windowsでプロセスごとの%CPU時間を後で分析するためにファイルに記録する簡単な方法はありますか?

私が見る限り...

  1. タスクマネージャーにプロセスごとの%CPUが表示されますが、視覚的にしか表示されません。ファイルに保存する方法はありません。
  2. Perfmonを使用すると、ファイルに保存でき、さらに時間ベースのファイル(指定した時間間隔でスナップショットを撮る)が作成されます。これは、見た限りでは%を分解できないことを除いて、ほぼ望みどおりです。プロセスごとのCPU。
  3. プロセスエクスプローラーを使用すると、プロセスごとに分類できますが、ファイルを単一の時点のスナップショットとしてのみ保存します

だから、これらのどれも私が必要とするものではありません:「CPUによるトップ10プロセス、15秒ごと、監視を停止するまで」のようなものを含むファイルを取得する必要があります。一部のプロセスが1日に数回CPU使用率を一時的に急上昇させており、原因となっているプロセスを特定する必要があります。

何かできることはありますか、またはperfmonまたはプロセスエクスプローラの一部の機能を見逃しましたか?

42
PhantomDrummer

Process Monitor がそれを行います。

最初に、プロファイリングイベントの収集を有効にすることができます。

enter image description hereenter image description here

次に、必要なだけデータを収集します(フィルターを設定して有効にすることもできますフィルターされたイベントをドロップする長期間収集する場合時間の)。次に、ツール->プロセスアクティビティの概要に移動します。

enter image description here

これで、記録したすべてのアクティブなプロセスのリストが、時間の経過に伴うアクティビティとともに表示されます。 enter image description here

次に、(プロセスをダブルクリックして)単一のプロセスの詳細を開き、グラフ内の特定のイベントのタイムスタンプを検査できます。

enter image description here

41
Der Hochstapler

「Der Hochstapler」の回答に基づくステップバイステップの説明 https://github.com/pestrela/smi_counter/blob/master/light_monitor/README.md

  1. Installation

  2. 構成:

    • CTRL + E:キャプチャを停止
    • CTRL + X:パケットを削除
    • CTRL + R:フィルターをリセット
    • ツールバー:
      • ツールバーの一番右側にあるすべてのイベントを無効にします(つまり、4xアイコン)すべてのタイプのイベント(タブバーの一番右側にある4xアイコン)
      • 最後のタイプのイベントを有効にします(タブバーの最後のアイコン-写真を参照)
    • メニュー:
      • フィルター/フィルターされたパケットのドロップ=オン
      • オプション/履歴の深さ:1000万
      • オプション/プロファイリングイベントオフ
  3. キャプチャー:

    • CTRL + E:キャプチャを開始します
      • 非常に重要:1秒あたり約300イベントを取得していることを確認します。
      • さらに取得している場合は、フィルタリングをもう一度確認してください
    • テストのために、CPUを多用して数秒間実行します。
      • 例:powerMAX、cpu-zベンチマークタブなど
    • CTRL + E:キャプチャを停止
  4. 分析:

    • ツール/プロセスアクティビティの概要
      • 新しいウィンドウで、CPUで並べ替え
      • プロセスをダブルクリックすると、詳細なタイムラインが表示されます
      • 列の詳細、「ユーザー時間」文字列
      • これは累積ユーザー時間になります。私の8論理コアマシンでは、リアルタイムの1秒ごとに8秒になります。

範囲外:CPUパーキング- このリンクを無効にするためのリンク を参照してください。
構成のエクスポート:ProcmonConfiguration.pmc

ProcmonConfiguration.pmc

0
Pedro Estrela