中央処理ユニット(CPU)は、コンピュータ・システム内のメイン・プロセッサであり、コンピュータ・プログラム命令の一般的な計算と実行を担当します。CPU の性能は、コンピュータの速度に影響します。サーバーの動作が遅い場合も、遅いパーソナル・コンピュータのトラブルシューティングが必要な場合も、CPU ボトルネックが原因となる可能性があります。
CPU ボトルネックとは?
CPU ボトルネックは、CPU がコンピュータ・システム内全体の性能を制限するコンポーネントである場合に発生します。コンピュータ・システムの他のコンポーネントが CPU よりもワークロードをうまく処理でき、期待する性能が得られない場合、CPU ボトルネックが発生する可能性があります。CPU は、コンピュータの高速コンポーネントよりも古くなったり、熱や空気の流れなどの環境要素が CPU の性能に影響を与える可能性があります。
100% CPU 使用率はボトルネックを意味するのか?
ボトルネックは、CPU がフル容量に達したときと同じではありません。CPU の最大容量で動作するビジー・サーバーは、処理量が多すぎると CPU のアップグレードが必要になる場合があります。例えば、インストールされた CPU が負荷の高いワークロード用に作成されていない場合、ビジー・データベース・サーバーは、高負荷を処理できない場合があります。低速なデータベース・サーバーをトラブルシューティングしている管理者は、CPU が 100% になり、性能が低下していることに気づくかもしれません。フルハードウェア容量で稼働するサーバーの性能が遅いのは、データ処理に対応できない全てのコンポーネント(または一部のコンポーネント)のせいかもしれません。
CPU ボトルネックは、必ずしも性能の問題を引き起こすとは限りません。コンピュータは、CPU の速度が遅いと最高の性能で動作しませんが、他の高速コンポーネントがインストールされている場合や、サーバーが同時に処理する要求が少ない場合は、気づかないことがあります。コンピュータが CPU ボトルネックに遭遇しても、高速に実行されているように見えますが、最適化された構成を追加することで高速に実行できます。企業アプリケーションをホストする高価なサーバーの場合、新しいハードウェアの購入は高価であるため、サーバーを高速化するために機器を追加するよりも、CPU ボトルネックをトラブルシューティングするほうが、従来は費用対効果が高くなります。
CPU ボトルネックの原因
特定のアプリケーションでは、CPU 集約型のタスクが発生します。また、ビデオカードのグラフィックス処理ユニット(GPU)を活用して、CPU から GPU にタスクをオフロードすることもできます。例えば、機械学習や分析を処理するサーバーには、広範な CPU リソースが必要です。CPU 負荷の高いタスクを処理するサーバーは、これらのタスクのみを処理する必要があり、他のビジネス要求のためのアプリケーションは、複数のタスクが CPU リソースと競合しないように、別々のサーバーにインストールする必要があります。環境全体のサーバー・ワークロードの戦略を立てることで、CPU 使用率を最適化し、ボトルネックを回避できます。
全てのコンピュータ機器は、湿度の低い涼しい部屋に設置する必要があります。環境温度が高いと、CPU の性能に影響します。ケース内のエアフローがほとんどないサーバーや、エアフローが最小限のクローゼットに設置されたサーバーは、熱ベースの CPU 劣化に悩まされる可能性があります。
サーバーに十分なメモリとストレージがあることを確認してください。メモリ制限のあるサーバーは、アプリケーション・データをストレージ・デバイスにオフロードする必要があります。オーバーロードされたサーバーは、アプリケーション・タスクを処理し、ストレージ・デバイスからメモリに情報を渡してから、CPU に戻します。最適化されたサーバーは、アプリケーション情報をメモリにロードし、必要に応じて CPU に渡します。CPU はそれをメモリに戻します。メモリ使用率が高い場合は、サーバーに追加のランダム・アクセス・メモリ(RAM)が必要であることを示しています。
管理者がアプリケーションをインストールする際、インストールプロセスで不要なプロセスが追加され、サーバーの再起動時にこれらの不要なプロセスがロードされることがあります。起動時にロードされるプロセスが多いほど、これらのアプリケーションをバックグラウンドで実行するためにより多くの CPU リソースが必要になります。これらのバックグラウンド・プロセスが不要で、サーバー機能にメリットがない場合には、それらを削除してください。また、バックグラウンドで実行されている隠れたアプリケーションにはマルウェアが含まれている可能性があるため、アンチウイルスおよびアンチマルウェア・ソフトウェアを使用してサーバーをスキャンします。
CPU ボトルネックが発生した後に起こりうること
性能の低下とは別に、CPU ボトルネックはコンピュータに重大なエラーを引き起こす可能性があります。CPU ボトルネックによる重大なエラーは、企業サーバー上でホストされるアプリケーションのダウンタイムを引き起こす可能性があります。管理者は、ハードウェア障害に関連するエラーがないかサーバーを監視する必要があります。
CPU ボトルネックで最も大きな問題は、フリーズやコンピュータのクラッシュです。CPU が過負荷になったり、タスクに対応できない場合、コンピュータがクラッシュする可能性があります。処理中に RAM やストレージ容量も使い果たされると、クラッシュやダウンタイムが発生する可能性が高くなります。管理者がサーバーに監視ソフトウェアをインストールしていない限り、クラッシュは予期せず発生し、サーバーは予告なしに再起動します。
CPU ボトルネックを防ぐ方法
CPU ボトルネックによりサーバーがクラッシュした場合は、ハードウェアのアップグレードが必要になる場合があります。管理者は、プロバイダの管理ダッシュボードのクラウドホスト型サーバーにハードウェア・リソースを容易に追加できますが、オンプレミスの管理者は CPU をサーバーに物理的にインストールする必要があります。オンプレミスのサーバーは、新しい CPU をインストールするには電源を切ってから、静電気を避けるために慎重に実行する必要があります。管理者は、静電気によるコンポーネントの破壊を避けるために、CPU を取り扱う際に自分自身をアースに接続しなければなりません。
ロード・バランサーは、CPU ボトルネックの解消に役立ちます。ロード・バランシング時にワークロードのバランスを取るには、複数のサーバーが必要です。ロード・バランサーは、単一のサーバーに全てのトラフィックを送信するのではなく、アプリケーション・サービスを要求するトラフィックのルートを決定します。ロード・バランサーの背後にある複数のサーバーでは、CPU の使用率と可用性に基づいて、ワークロードが各サーバーに分散されます。
サーバーの稼働時間を管理する管理者は、CPU ボトルネックや CPU 使用率の急増を検出するために、ネットワーク環境全体に監視ソフトウェアを常にインストールする必要があります。どちらのシナリオでも、サーバーが要求で過負荷になっているか、マルウェアがリソースを使い果たしていることを示している可能性があります。熱ベースの性能低下も問題となる可能性があり、サーバー監視ソフトウェアは CPU の高温を管理者に通知します。
CPU ボトルネック・テストの方法
オープンソースのボトルネック・チェッカーがいくつかあり、コンピュータに CPU のアップグレードが必要か、ハードウェアを最適化して性能を向上させる必要があるかを判断するのに役立ちます。Windowsのタスクマネージャーは CPU の使用率をネイティブに監視し、Linux には CPU のアクティビティを確認するための sysstat と呼ばれるバンドルがあります。ネイティブ・アプリケーションであっても、CPU ボトルネックを特定するために、より適切な監視と統計が必要になる場合があります。
オープンソースのボトルネック・チェッカーには、次のようなものがあります。
まとめ
CPU ボトルネックは苛立たしいものですが、アプリケーションを最高の性能で実行し続けるためには、サーバーの最適化も必要です。性能の問題がないかサーバーを監視し、ボトルネックがシステムに予期しないエラーを引き起こす前に、重大なクラッシュを阻止します。CPU ボトルネックが解消されない場合は、サーバー・ハードウェアのアップグレードを検討し、性能と安定性を向上させてください。
コストのかかる中断なしに CPU をアップグレードする方法をお探しですか? Cisco とピュア・ストレージが共同開発したハイブリッド・クラウド・インフラ・ソリューションである FlashStack は、ダウンタイムなしでコンピューティング、ネットワーク、ストレージを無停止でアップグレードする機能により、ボトルネックに即座に対処できます。