4.2. 配置仿真程序线程
Compute 节点具有与每个实例的虚拟机监控程序关联的开销任务,称为仿真程序线程。默认情况下,仿真程序线程在与实例相同的 CPU 上运行,这会影响实例的性能。
您可以将仿真程序线程策略配置为在单独的 CPU 上运行仿真程序线程,以用于实例使用的不同 CPU。
- 为避免数据包丢失,不得先抢占 NFV 部署中的 vCPU。
先决条件
- 必须启用 CPU 固定。
流程
-
以
stack
用户的身份登录 undercloud。 - 打开 Compute 环境文件。
要为需要 CPU 固定的实例保留物理 CPU 内核,请在 Compute 环境文件中配置
NovaComputeCpuDedicatedSet
参数。例如,以下配置在具有 32 核 CPU 的 Compute 节点上设置专用 CPU:parameter_defaults: ... NovaComputeCpuDedicatedSet: 2-15,18-31 ...
如需更多信息,请参阅在 Compute 节点上配置 CPU 固定。
要为仿真程序线程保留物理 CPU 内核,请在 Compute 环境文件中配置
NovaComputeCpuSharedSet
参数。例如,以下配置在具有 32 核 CPU 的 Compute 节点上设置共享 CPU:parameter_defaults: ... NovaComputeCpuSharedSet: 0,1,16,17 ...
注意计算调度程序还将共享集中的 CPU 用于在共享或浮动 CPU 上运行的实例。如需更多信息,请参阅在 Compute 节点上配置 CPU 固定
-
将 Compute 调度程序过滤
NUMATopologyFilter
添加到NovaSchedulerEnabledFilters
参数(如果尚不存在)。 使用其他环境文件将计算环境文件添加到堆栈中,并部署 overcloud:
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/<compute_environment_file>.yaml
配置一个类别,它在专用 CPU 上运行仿真程序线程,该 CPU 从使用
NovaComputeCpuSharedSet
配置的共享 CPU 中选择:(overcloud)$ openstack flavor set --property hw:cpu_policy=dedicated \ --property hw:emulator_threads_policy=share \ dedicated_emulator_threads
有关
hw:emulator_threads_policy
的配置选项的更多信息,请参阅 类别元数据中的 Emulator 线程策略。