これは本当に素晴らしい質問であり、それ以上の愛を得ていないのは残念です!
:ボトルネック解析の私の基本的な理論は有限な資源の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のプロセスオブジェクトに依存して、どのプロセスがリソースを独占しているのかを見つけます。