次の方法で共有


プロセッサ使用率について

プロセッサ使用率について

ここでは、プロセッサ、つまり "中央処理装置" (CPU) に関連するパフォーマンス上の問題点について、次の 2 つに分けて説明します。

  • プロセッサのボトルネックを明らかにする
  • プロセッサ使用量の調整

プロセッサのボトルネックを明らかにする

コンピュータが受けた命令を実際に処理するのは CPU です。CPU のクロック速度、およびCPU が情報の伝達に使用するデータ バスのサイズに応じて、CPU、ハード ディスク、RAM などのコンピュータのさまざまな構成要素の間を移動する情報量が変わります。クロック速度が速くなればなるほど、同じ時間内にデータ バスにより受け渡しされる情報は多くなります。一般に、クロック速度はメガヘルツ (MHz) で表されます。データ バスが一度に転送できるデータの量は 16、32、または 64 ビットで、これはバスのサイズによって異なります (また、データの転送量はオペレーティング システム、およびアプリケーションが基準とする転送速度によっても変わります)。

プロセッサのボトルネックの特徴は、ネットワーク アダプタ カードの容量には十分な余裕があるのに、CPU 使用率の値が大きいことです。CPU 使用率が高い場合には、次のような対策を講じます。

  • CPU をアップグレードする。
  • 同じコンピュータに CPU を追加する。
  • サイトを別のコンピュータに複製し、2 台のコンピュータ間にトラフィックを分散させる。
  • データベース アプリケーションなど、プロセッサを集中的に使用するアプリケーションを別のコンピュータに移動する。

プロセッサ使用量の調整

プロセスの調整を有効にして、個々の Web サイトで、アウトプロセス WAM、ISAPI、CGI アプリケーションの処理に費やされる CPU 時間の割合を制限することができます。1 台のコンピュータで複数のサイトをホストしているときに、このうち 1 つのサイトにあるアウトプロセス アプリケーションによって、CPU 容量がすべて使用されてしまい、ほかのサイトが CPU を使用できなくなることが問題になる場合は、CPU へのアクセスを制限すると便利です。

一定の間隔内に、制約を受けているサイトのアウトプロセス アプリケーションが割り当て以上のプロセッサ時間を使用している場合、イベントがログに記録され、割り当てを超えた量に応じて、次のような対応がとられます。

  • レベル 1 指定された時間内でのプロセッサの合計使用量が制限を超えた場合、イベントが Windows 2000 イベント ログに書き込まれます。
  • レベル 2 プロセッサの使用量が制限値の 1.5 倍を超えた場合、イベントがイベント ログに書き込まれ、この Web サイトにあるすべてのアウトプロセス アプリケーションで、CPU 優先順位が Idle に設定されます。
  • レベル 3 プロセッサの使用量が制限値の 2 倍を超えた場合、イベントがイベント ログに書き込まれ、この Web サイトにあるすべてのアウトプロセス アプリケーションが停止されます。

あるサイトに対して、レベル 2、またはレベル 3 の対応がとられた場合、このサイトは次の間隔までそのままの状態になります。たとえば、あるサイトのアウトプロセス アプリケーションが、24 時間の間隔で、CPU 処理時間の 10 パーセントに制限されている場合、このサイトのアプリケーションは 24 時間のうち、2.4 時間しか、CPU を使うことができません。このサイトでの CPU 使用時間が 2.4 時間超、3.6 時間未満であった場合は、イベント ログ にイベントが書き込まれるだけです。いったん、このサイトでの CPU 使用時間が 3.6 時間を超えてしまうと、このサイトにあるすべてのアウトプロセス アプリケーションが Idle に設定されます。サーバーがそれほど使用されておらず、アプリケーションによってプロセッサ時間が引き続き使用された場合、24 時間の間隔で使用時間が 4.8 時間に到達したところで、この Web サイトにあるアウトプロセス アプリケーションは停止されます。

プロセス総計は 24 時間が過ぎたところでリセットされ、サイトの機能は通常に戻ります。管理者は Web サイトの制限値の設定を変更、またはサイトをいったん停止し、再開させることで、通常の機能に戻すことができます。Web サイト オペレータには、この設定を変更する権利はありません。プロセス制約の設定については、「調整処理」を参照してください。プロセス総計については、「サイトの利用状況のログ収集について」を参照してください。スクリプトやメタベースを使用して、対応レベルを追加したり、プロセス調整の間隔を変更したりする方法については、「IIS Admin オブジェクトを使用する」を参照してください。

プロセスの調整を有効にすると、多くの場合、CGI タイムアウト間隔を小さくする必要があります。既定では、この間隔は 5 分に設定されています。CGI アプリケーションが機能しなくなった場合、設定されているタイムアウト値に達するまで、スレッドは解放されません。アプリケーションが機能しなくなってから、スレッドが最終的に解放されるまでの時間は、このアプリケーションのプロセッサ使用時間としてカウントされます。IIS 5.0 での CGI タイムアウトは、CGI アプリケーションが完了するまでの総時間であり、入出力が行われるまでの時間ではありません。この点が従来の IIS とは異なります。CGI タイムアウトの変更方法については、「アプリケーションをキャッシュする」を参照してください。IIS により設定可能なタイムアウト値の一覧については、「タイムアウト リファレンス」を参照してください。