3.5. パフォーマンス
OpenStack デプロイメントのパフォーマンスは、インフラストラクチャーサービスとコントローラーサービスに関連する複数の要因によって異なります。ユーザー要件は、ネットワークパフォーマンス、コンピュートリソースのパフォーマンス、およびストレージシステムのパフォーマンスに分割できます。
これらのシステムが低速ではない状態で一貫して動作する場合でも、システムの過去のパフォーマンスベースラインを保持するようにしてください。利用可能なベースライン情報は、パフォーマンスの問題が発生し、比較目的でデータが必要な場合に役立つリファレンスです。
「OpenStack Telemetry (ceilometer)」 に加え、外部ソフトウェアを使用してパフォーマンスを追跡することもできます。Red Hat OpenStack Platform の Operational Tools リポジトリーには、以下のツールが含まれています。
3.5.1. ネットワークパフォーマンス
ネットワーク要件は、パフォーマンス機能を決定するのに役立ちます。たとえば、小規模なデプロイメントでは 1 ギガビットイーサネット(GbE)ネットワークを使用する可能性があり、複数の部門に対応する大容量インストールや、多くのユーザーが 10 GbE ネットワークを使用する必要があります。
実行中のインスタンスのパフォーマンスは、これらのネットワーク速度により制限される可能性があります。ネットワーク機能の組み合わせを実行する OpenStack 環境を設計することができます。異なるインターフェイス速度を利用することで、OpenStack 環境のユーザーは目的に合ったネットワークを選択できます。
たとえば、Web アプリケーションインスタンスは、1 GbE 機能を持つ OpenStack Networking を使用してパブリックネットワーク上で実行でき、バックエンドデータベースは、10 GbE 機能を備えた OpenStack Networking ネットワークを使用して、そのデータを複製できます。場合によっては、設計にはリンクアグリゲーションを組み込むことで、スループットを向上させることができます。
クラウド API にフロントエンドサービスを提供するハードウェアロードバランサーを実装することで、ネットワークパフォーマンスを向上させることができます。ハードウェアロードバランサーは、必要に応じて SSL ターミネーションを実行することもできます。SSL オフロードを実装する場合は、選択したデバイスの SSL オフロード機能を確認することが重要です。
3.5.2. コンピュートノードのパフォーマンス
CPU、メモリー、ディスクタイプなど、コンピュートノードで使用されるハードウェア仕様は、インスタンスのパフォーマンスに直接影響を及ぼします。OpenStack サービスの調整可能なパラメーターは、パフォーマンスに直接影響を与える可能性があります。
たとえば、OpenStack Compute のデフォルトのオーバーコミット率は、CPU の場合は 16:1、メモリーの場合は 1.5 です。これらの比率が高いと、noisy-neighbor アクティビティーが増える可能性があります。このシナリオを回避し、使用状況が増加したら環境を監視するように、コンピュート環境のサイズを慎重に検討する必要があります。
3.5.3. Block Storage Hosts のパフォーマンス
Block Storage は、NetApp または EMC などのエンタープライズバックエンドシステムや Ceph 等のスケールアウトストレージを使用する、または Block Storage ノードで直接接続されたストレージの機能を利用できます。
Block Storage をデプロイして、トラフィックがホストネットワークを通過できるようにすることができます。これは影響を受ける可能性があり、フロントサイド API トラフィックのパフォーマンスに悪影響を受ける可能性があります。したがって、コントローラーおよびコンピュートホスト上の専用のインターフェイスでデータストレージネットワークを使用することを検討してください。
3.5.4. オブジェクトストレージホストのパフォーマンス
ユーザーは通常、ハードウェアロードバランサーの背後で実行されるプロキシーサービスを介してオブジェクトストレージにアクセスします。デフォルトで、高度に回復性のあるストレージシステムは、保存されたデータを複製します。これにより、システム全体のパフォーマンスに影響を与える可能性があります。この場合、ストレージネットワークアーキテクチャー全体で 10 GbE 以上のネットワーク容量が推奨されます。
3.5.5. コントローラーノード
コントローラーノードは、エンドユーザーに管理サービスを提供し、クラウド操作の内部にあるサービスを提供します。コントローラーインフラストラクチャーを実行するために使用されるハードウェアを慎重に設計することが重要です。
コントローラーは、サービス間のシステムメッセージング用にメッセージキューサービスを実行します。メッセージングのパフォーマンスの問題により、インスタンスのスピンアップや削除、新しいストレージボリュームのプロビジョニング、およびネットワークリソースの管理などの運用機能が遅延する可能性があります。これらの遅延は、特に自動スケーリング機能を使用する場合に、アプリケーションが一部の状態に対応する能力に悪影響を与える可能性があります。
また、コントローラーノードが複数の同時ユーザーのワークロードを処理できるようにする必要があります。顧客のサービスの信頼性を向上させるために、API および Horizon サービスの負荷を確実にテストしてください。
OpenStack Identity サービス(keystone)を考慮することが重要です。OpenStack Identity サービス(keystone)は、すべてのサービスを内部的に OpenStack およびエンドユーザーに提供します。このサービスにより、サイズが適切に行われない場合、全体的なパフォーマンスが低下する可能性があります。
監視が重要なメトリクスには以下が含まれます。
- イメージディスクの使用率
- Compute API への応答時間