5.3. 解決方法
VM に割り当てられた vCPU がゲストのタスクのみを処理していることを確認します。
クラスターが次のテンプレートパラメーターを使用してデプロイされたことを確認します。
-
IsolCpusList: スケジュール
から CPU を削除します -
NovaVcpuPinSet
: ピニング用の CPU の割り当て -
NovaComputeCpuSharedSet
: エミュレータースレッド固定用に CPU を割り当てます。
-
例:
parameter_defaults: ComputeOvsDpdkParameters: KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=32 iommu=pt intel_iommu=on isolcpus=2-19,22-39" IsolCpusList: "2-19,22-39" NovaVcpuPinSet: ['4-19,24-39'] NovaReservedHostMemory: 4096 OvsDpdkSocketMemory: "3072,1024" OvsDpdkMemoryChannels: "4" OvsDpdkCoreList: "0,20,1,21" OvsPmdCoreList: "2,22,3,23" NovaComputeCpuSharedSet: [0,20,1,21]
- 固定された CPU とエミュレータープールセットを利用するフレーバーで VM がデプロイされていることを確認します。
例:
openstack flavor create --ram <size_mb> --disk <size_gb> -\ -vcpus <vcpus> --property dpdk=true \ --property hw:mem_page_size=1G \ --property hw:cpu_policy=dedicated \ --property hw:emulator_threads_policy=share <flavor>
- これらの設定が意図したとおりに動作していることを確認してください。詳細は、Simple Compute Node CPU Partitioning and Memory Checks を参照してください。
完全に専用の CPU リソースをインスタンスに割り当てても、ネットワークパケット損失が発生する場合は、インスタンスが適切に調整され、DPDK が有効になっていることを確認してください。