第9章 Red Hat OpenStack Platform 環境の調整
9.1. エミュレータースレッドの固定 リンクのコピーリンクがクリップボードにコピーされました!
エミュレータースレッドは、仮想マシンのハードウェアエミュレーションの割り込み要求およびノンブロッキングプロセスを処理します。これらのスレッドは、ゲストが処理用に使用する CPU 全体に存在します。Poll Mode Driver (PMD) またはリアルタイム処理に使用されるスレッドがこれらのゲスト CPU 上で実行される場合、パケットロスまたはデッドラインの超過が生じる可能性があります。
エミュレータースレッドを専用のゲスト CPU に固定して、スレッドを仮想マシン処理のタスクから分離することができます。その結果、パフォーマンスが向上します。
9.1.1. エミュレータースレッドをホストする CPU の設定 リンクのコピーリンクがクリップボードにコピーされました!
パフォーマンスを改善するために、エミュレータースレッドをホストするために OvsDpdkCoreList パラメーターで識別したホスト CPU のサブセットを確保します。
手順
特定のロールに
NovaComputeCpuSharedSetを定義してオーバークラウドをデプロイします。NovaComputeCpuSharedSetの値は、そのロール内のホストのnova.confファイルのcpu_shared_setパラメーターに適用されます。parameter_defaults: ComputeOvsDpdkParameters: OvsDpdkCoreList: “0-1,16-17” NovaComputeCpuSharedSet: “0-1,16-17” NovaComputeCpuDedicatedSet: “2-15,18-31”parameter_defaults: ComputeOvsDpdkParameters: OvsDpdkCoreList: “0-1,16-17” NovaComputeCpuSharedSet: “0-1,16-17” NovaComputeCpuDedicatedSet: “2-15,18-31”Copy to Clipboard Copied! Toggle word wrap Toggle overflow エミュレータースレッドが共有プールに分離されたインスタンスをビルドするためのフレーバーを作成します。
openstack flavor create --ram <size_mb> --disk <size_gb> --vcpus <vcpus> <flavor>
openstack flavor create --ram <size_mb> --disk <size_gb> --vcpus <vcpus> <flavor>Copy to Clipboard Copied! Toggle word wrap Toggle overflow hw:emulator_threads_policy追加仕様を追加し、値をshareに設定します。このフレーバーで作成されたインスタンスは、nova.conf ファイルのcpu_share_setパラメーターで定義されたインスタンス CPU を使用します。openstack flavor set <flavor> --property hw:emulator_threads_policy=share
openstack flavor set <flavor> --property hw:emulator_threads_policy=shareCopy to Clipboard Copied! Toggle word wrap Toggle overflow
この追加仕様の共有ポリシーを有効にするには、nova.conf ファイルで cpu_share_set パラメーターを設定する必要があります。nova.conf を手動で編集した内容は再デプロイ後は維持されないので、この設定には可能な限り heat を使用するべきです。
9.1.2. エミュレータースレッドが固定されていることの確認 リンクのコピーリンクがクリップボードにコピーされました!
手順
対象インスタンスのホストおよび名前を特定します。
openstack server show <instance_id>
openstack server show <instance_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSH を使用して、特定したホストに heat-admin としてログオンします。
ssh heat-admin@compute-1 [compute-1]$ sudo virsh dumpxml instance-00001 | grep `'emulatorpin cpuset'`
ssh heat-admin@compute-1 [compute-1]$ sudo virsh dumpxml instance-00001 | grep `'emulatorpin cpuset'`Copy to Clipboard Copied! Toggle word wrap Toggle overflow