一般的なWQLモニタリングクエリ


12

典型的なWindowsのボトルネックを監視するためにどのWQLクエリを使用しますか?「top」または「netstat」に似たデータを取得するには、どちらを使用しますか?どの間隔でポーリングしますか?

ここに私が役に立つと思ういくつかがあります。

SELECT PercentDiskTime, AvgDiskQueueLength, DiskReadBytesPerSec, DiskWriteBytesPerSec FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk

SELECT Caption, CommittedBytes, AvailableBytes, PercentCommittedBytesInUse, PagesPerSec, PageFaultsPerSec FROM Win32_PerfFormattedData_PerfOS_Memory

SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor

SELECT Caption, WorkingSet, PageFaultsPerSec,IOReadBytesPerSec, IOWriteBytesPerSec, ThreadCount, HandleCount FROM Win32_PerfFormattedData_PerfProc_Process

SELECT Caption, BytesReceivedPerSec, BytesSentPerSec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface

すばらしいものです。これは、アプリケーションプログラマにも役立ちます。このようなものの多くは、Win32 API呼び出しを介して直接利用することはできません。WMIは便利ですが、議論されるべきではありません。
アンドンM.コールマン

回答:


7

これは本当に素晴らしい質問であり、それ以上の愛を得ていないのは残念です!

:ボトルネック解析の私の基本的な理論は有限な資源の4種類の箱のようなシステムを扱うことであるプロセッサ、メモリ、ディスク、およびネットワーク。それで、私はこれらのそれぞれの基本的な数を得て、箱の健康状態を決定したいです。数値は解釈しやすいものが必要です。高い値は悪い値、低い値は良い値です。完全に達成できるわけではありませんが、0が最適です(結局、仕事のためにコンピューターを購入しましたよね?)。4つのリソースのうちどれが主なボトルネックであるかを確認したら、どのプログラムまたはプロセスがすべてのリソースを消費しているかを判断し、そのリソースを増やす必要があるかどうか、または使用するプログラム/プロセスを調整する必要があるかどうかについて知識に基づいた決定を行うことができます少ないリソース。

この記事で使用する主なパフォーマンスカウンターをWMICクエリとしてフォーマットします。スクリプトが必要ないためです(確かに可能です!)。これらの各クエリをcmdコンソールに直接入力できます。

wmic path Win32_PerfFormattedData_PerfOS_System get ProcessorQueueLength

上記はProcessor Queue Lengthです。これは、CPUによって処理されるキューで待機しているスレッドの数を示します。高い数字は悪い、低い数字は良い。一般的に、10未満の値は健全なシステムであると考えています。

wmic path Win32_PerfFormattedData_PerfOS_Memory get PagesInputPerSec

上記はメモリ、1秒あたりのページ入力、ハードページフォールトを解決するためにディスクからページが読み取られる速度です。ハードページフォールトは、プロセスが物理メモリにない仮想メモリのページを参照し、ディスクから取得する必要がある場合に発生します。ただし、このカウンタはPerfmonのグラフビューで最適に機能します。正常な(ボトルネックではない)コンピューターでは、データがディスクからRAMに読み込まれるときにスパイクが発生することがあります。スパイクが多いほど、スパイクが大きくなるほど、システムのメモリが制限されます。システムが5秒よりも長い期間にわたってゼロ以外の値のままになることが多い場合は、おそらくメモリのボトルネックが発生している可能性があります。

wmic path Win32_PerfFormattedData_PerfDisk_PhysicalDisk get AvgDiskQueueLength, name

上記は、PhysicalDisk、Average Disk Queue Lengthです。これは、システムの健全性の重要な指標であると考えます。メモリのボトルネックは、ページファイルの過度のスワッピングによりディスクを停止させ、多くの場合、CPU使用率も押し上げるためです。マウントされた各ディスクのアイテムとすべてのディスクの合計が表示されます。パフォーマンスの高い単一ディスクでは、この値は2以下になります。アレイの場合、スピンドルの数をキューの長さで除算します(例:アレイの4つ​​のスピンドルを8 = 2のキューの長さで割った値は、アレイのパフォーマンスが良好であることを意味します)。

wmic path Win32_PerfFormattedData_Tcpip_NetworkInterface get OutputQueueLength, PacketsReceivedErrors, Name, currentbandwidth

そして最後に、上記のNICのパフォーマンスがあります。具体的には、ネットワークインターフェイス、出力キューの長さ受信パケット数のエラー。これらの2つのカウンターは、送信を待機しているパケットの数と、おそらく再送信につながるエラーを引き起こした受信パケットの数を知らせます。両方の数値をゼロのままにしておきます。このクエリでは、有用な情報であるNICの現在の帯域幅も取得します。

どのリソースが過剰に使用されているかを判断したら、通常はプロセスエクスプローラーまたはPerfmonのプロセスオブジェクトに依存して、どのプロセスがリソースを独占しているのかを見つけます。


詳細な説明をありがとう。コミュニティWikiに変換しました。この質問のもう1つの側面は、ポーリング間隔です。一部のボトルネックは短時間しか表示されず、他のボトルネックはより少ない頻度でサンプリングされます。
ヤンシー

さて、ほとんどの場合、積極的に(ボトルネックが発生した場合に目を光らせている)ではなく、反応的に(何らかの問題が観察されているため)ボトルネックを探しています。ただし、どちらの場合も、数分にわたるperfmonグラフは、特定の時点のスナップショットよりもはるかに便利です。
quux
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.