web-dev-qa-db-ja.com

Perfmon%プロセッサ時間とタスクマネージャのCPU使用率

私はPerfmonとパフォーマンスモニタリングを一般的に使用するのは初めてです(だから私に気楽に行ってください;)

PerfmonにはタスクマネージャーのCPU使用率表示とまったく同じものがないことは知っていますが、同様の方法でPerfmonを介してユーザーのCPU使用率を監視する方法を理解し、測定値(または変換方法)を理解しようとしています。同様の理解を得るための数字)

たとえば、タスクマネージャーで、特定のユーザーが常に5%を超えるCPUを使用している場合、そのユーザーに連絡したいと思います。

私は例によって最もよく学ぶので、具体的な例を挙げて、これがまさに私がやろうとしていることです。

これは、32ビットのデュアルクアッドコアWindows 2003 Webサーバー(8 CPU)用であり、サーバー上には多くのWebサイトがあり、それぞれが独自のアプリケーションプール/ワーカープロセスID内で実行されています。

ここでの他の調査を通じて、PIDがw3wpプロセスで表示されるようにレジストリを変更したことを知りました。これにより、後で相互参照することでサイトを簡単に識別できます。

次の設定でカウンターを設定しました。

Process -> % Processor Time  -> all instances

これが例です。下のグラフの「black line」ユーザーに興味があるとしましょう。彼のプロセスは他のすべてのユーザーと比較して非常に高くなっています。

(私はこのサイトの新しいユーザーであるため、画像を投稿することはできませんでした。画像を次の宛先にアップロードしました:)

http://i35.tinypic.com/106yn8k.jpg

したがって...これを例として使用すると、AVERAGE%PROCESSOR TIMEが23.264であり、103.124まで急上昇していることがわかります。

では、この23.264の数字は私にとって正確に何を意味するのでしょうか。これは、このユーザーのタスクマネージャーのCPU読み取り値の平均に似ていますか?

または、このサーバーには8つのCPUがあるので、この数を8で割る必要がありますか? (23.264/8 = 2.9%の平均CPU負荷?)

前もって感謝します。

2
nat

ほとんどの人は、プロセッサ時間を監視するのではなく、プロセッサキューの長さ(プロセッサを待機しているスレッドの数)を監視する傾向があります。

そうは言っても、ここには良い説明があります:

http://www.windowsnetworking.com/articles_tutorials/Key-Performance-Monitor-Counters.html

3
user6373

私はこの質問が少し古いことを知っていますが、別の関連する議論がここにあります:

実行プロセス:%プロセッサ時間とタスクマネージャのCPU使用率

重要な点は、「プロセッサ\%ユーザー時間」も取得し、それに関心のあるプロセスの「プロセス\%プロセッサ時間」を掛ける必要があるということです。

「process \%processortime」には「process \%usertime」と「process \%privilege time」の両方が含まれるため、個人的には「processor \%privilegetime」を含める必要があると思いますが、私の言葉をそのように受け取らないでください。

2
blissfool