CPU 使用率の監視

CPU 使用率が通常の範囲内にあるかどうかを確認するため、Microsoft SQL Server のインスタンスを定期的に監視する必要があります。CPU 使用率が常に高い場合は、CPU のアップグレードまたは多重プロセッサの追加を検討する必要があります。また、CPU 使用率が高い場合、アプリケーションのチューニングや設計に問題がある可能性もあります。この場合は、アプリケーションを最適化することで CPU 使用率を下げることができます。

CPU 使用率を効率よく確認するには、システム モニタの Processor:% Processor Time カウンタを使用します。このカウンタは、アイドル状態でないスレッドを実行するために CPU が費やす時間を監視します。使用率が常に 80 ~ 90% である場合は、CPU のアップグレードまたはプロセッサの追加が必要です。多重プロセッサ システムでは、各プロセッサについて、このカウンタを個別に監視します。この値は、特定のプロセッサの処理時間の合計を表します。すべてのプロセッサの平均値を調べるには、代わりに System: %Total Processor Time カウンタを使用します。

必要に応じて、次のカウンタでプロセッサ使用率を監視することもできます。

  • Processor: % Privileged Time

    SQL Server の I/O 要求など、Microsoft Windows のカーネル コマンドの実行にプロセッサが費やす時間の比率を示します。Physical Disk カウンタの値が高いときに、このカウンタの値が常に高い場合は、より高速で効率的なディスク サブシステムのインストールを検討してください。

    注意

    カーネルの処理時間をどの程度使用するかは、ディスク コントローラやドライバによって異なります。効率のよいコントローラやドライバは処理時間をそれほど必要としないため、ユーザー アプリケーションの利用可能な処理時間が多くなり、全体的な処理能力が向上します。

  • Processor: %User Time

    SQL Server などのユーザー プロセスの実行にプロセッサが費やす時間比率を示します。

  • System: Processor Queue Length

    プロセッサ時間を待っているスレッドの数を示します。プロセスのスレッドが、使用できるよりも多くのプロセッサ サイクルを必要とする場合は、プロセッサのボトルネックが生じます。複数のプロセスがプロセッサ時間を利用する場合、状況によっては、より高速なプロセッサのインストールが必要になります。多重プロセッサ システムを使用している場合は、プロセッサの追加も可能です。

プロセッサ使用率を調べる場合は、SQL Server のインスタンスで実行されている作業の種類を考慮してください。SQL Server が集計に関するクエリや、ディスク I/O を必要としないメモリ バインド クエリなどの多数の計算を実行している場合は、100% のプロセッサ時間が使用されることがあります。これによって他のアプリケーションのパフォーマンスが低下する場合は、ワークロードを変更してみてください。たとえば、そのコンピュータを SQL Server のインスタンスの実行専用にします。

多数のクライアント要求が処理されている場合に、使用率が 100% 前後の値を示しているとき、プロセスが待ち行列内でプロセッサ時間を待っているために、ボトルネックが生じていることが考えられます。この問題を解決するには、より高速なプロセッサを追加します。