4.10. 配置高性能虚拟机、模板和池
您可以为虚拟机配置高性能,以便其运行性能指标尽可能接近裸机。当您选择高性能优化时,虚拟机会使用一组自动和推荐手动设置进行配置,从而最大程度提高效率。
高性能选项只能在管理门户中通过从 Edit 或 New 虚拟机、模板或池窗口中的 Optimized for 下拉列表中选择 High Performance 来访问。虚拟机门户中不提供这个选项。
Red Hat Virtualization 4.2 及更新的版本支持高性能选项。它不适用于早期版本。
虚拟机
如果您将正在运行的虚拟机的优化模式更改为高性能,一些配置更改需要重启虚拟机。
要将新或现有虚拟机的优化模式更改为高性能,您可能需要先对集群和固定主机配置进行手动更改。
高性能虚拟机存在一些限制,因为增强的性能会以降低的灵活性进行权衡:
- 如果根据推荐的设置,为 CPU 线程、I/O 线程、仿真程序线程或 NUMA 节点设置了固定,则只有一部分集群主机可以分配给高性能虚拟机。
- 许多设备会自动禁用,这限制了虚拟机的可用性。
模板和池
高性能模板和池的创建和编辑方式与虚拟机相同。如果使用高性能模板或池创建新虚拟机,则这些虚拟机将继承此属性及其配置。但是,某些设置不会被继承,必须手动设置:
- CPU 固定
- 虚拟 NUMA 和 NUMA 固定拓扑
- I/O 和仿真程序线程固定拓扑
- 透传主机 CPU
4.10.1. 创建高性能虚拟机、模板或池
创建高性能虚拟机、模板或池:
在 New 或 Edit 窗口中,从 Optimized for 下拉菜单中选择 High Performance。
选择此选项会自动对此虚拟机执行某些配置更改,您可以通过单击不同的选项卡来查看这些更改。您可以将它们改回到其原始设置或覆盖它们。(详情请参阅自动高性能配置设置。) 如果您更改了设置,则会保存其最新的值。
点击
。如果您还没有设置任何手动配置,则会出现描述建议的手动配置的 High Performance Virtual Machine/Pool Settings 屏幕。
如果您设置了一些手动配置,High Performance Virtual Machine/Pool Settings 屏幕将显示您尚未进行的设置。
如果您设置了所有建议的手动配置,则不会出现 High Performance Virtual Machine/Pool Settings 屏幕。
如果显示 High Performance Virtual Machine/Pool Settings 屏幕,请单击 以返回到 New 或 Edit 窗口,以执行手动配置。详情请参阅配置推荐的手动设置。
或者,单击
以忽略建议。结果可能是性能水平下降。点击
。您可以在虚拟机、池或模板的详情视图的 General 选项卡中查看优化类型。
某些配置可能会覆盖高性能设置。例如,如果您在从 Optimized for 下拉菜单中选择 High Performance 并执行手动配置前为虚拟机选择一个实例类型,则实例类型配置不会影响高性能配置。但是,如果您在高性能配置后选择实例类型,则应在不同标签页中验证最终配置,以确保高性能配置没有被实例类型覆盖。
最后保存的配置通常具有优先权。
对实例类型的支持现已弃用,并将在以后的发行版本中删除。
4.10.1.1. 自动高性能配置设置
下表总结了自动设置:Enabled(Y/N) 列指出启用或禁用的配置。Applies to 列指示相关资源:
- VM - 虚拟机
- T - 模板
- P - 池
- C - 集群
设置 | 启用(Y/N) | 适用于 |
---|---|---|
无头模式 (控制台选项卡) |
|
|
启用 USB (控制台选项卡) |
|
|
启用智能卡 (控制台选项卡) |
|
|
启用声卡 (控制台选项卡) |
|
|
启用 VirtIO 串行控制台(控制台选项卡) |
|
|
仅允许手动迁移 (主机选项卡) |
|
|
透传主机 CPU (主机选项卡) |
|
|
High Available [1] (高可用性选项卡) |
|
|
无 Watchdog (高可用性选项卡) |
|
|
内存气球设备 (资源分配选项卡) |
|
|
I/O Threads Enabled [2] (资源分配选项卡) |
|
|
半虚拟化随机数生成器 PCI(virtio-rng)设备(随机数生成器选项卡) |
|
|
I/O 和仿真程序线程固定拓扑 |
|
|
CPU 缓存层 3 |
|
|
-
高可用性
不会被自动启用。如果您手动选择它,则仅应当为固定主机启用高可用性。 - I/O 线程数 = 1.
4.10.1.2. I/O 和仿真程序线程固定拓扑(自动设置)
I/O 和仿真程序线程固定拓扑是 Red Hat Virtualization 4.2 的新配置设置。它要求为虚拟机启用并设置 I/O 线程、NUMA 节点和 NUMA 固定。否则,引擎日志中会显示警告。
固定拓扑:
- 每个 NUMA 节点的前两个 CPU 已固定。
如果所有 vCPU 都适合主机的一个 NUMA 节点:
- 前两个 vCPU 会自动保留/固定
- 剩余的 vCPU 可用于手动 vCPU 固定
如果虚拟机跨越多个 NUMA 节点:
- 带有最多固定的 NUMA 节点的前两个 CPU 会保留/固定
- 剩余的固定 NUMA 节点仅用于 vCPU 固定
池不支持 I/O 和仿真程序线程固定。
如果主机 CPU 固定到 vCPU 和 I/O 和仿真程序线程中,日志中会出现警告信息,您需要考虑更改 CPU 固定拓扑以避免出现这种情况。
4.10.1.3. 高性能图标
以下图标表示
图标 | 描述 |
---|---|
| 高性能虚拟机 |
| 使用 Next Run 配置的高性能虚拟机 |
| 无状态、高性能虚拟机 |
| 带有 Next Run 配置的无状态、高性能虚拟机 |
| 高性能池中的虚拟机 |
| 使用 Next Run 配置的高性能池中的虚拟机 |
4.10.2. 配置推荐的手动设置
您可以在 New 或 Edit 窗口中配置推荐的手动设置。
如果没有执行建议设置,则 High Performance Virtual Machine/Pool Settings 屏幕会在您保存资源时显示推荐的设置。
推荐的手动设置有:
4.10.2.1. 手动高性能配置设置
下表总结了建议的手动设置。Enabled(Y/N) 列指示应启用或禁用的配置。Applies to 列指示相关资源:
- VM - 虚拟机
- T - 模板
- P - 池
- C - 集群
设置 | 启用(Y/N) | 适用于 |
---|---|---|
NUMA 节点数 (主机选项卡) |
|
|
调优模式 (NUMA 孤独屏幕) |
|
|
NUMA 固定 (主机选项卡) |
|
|
CPU 固定拓扑 (资源分配选项卡) |
|
|
巨页(自定义属性选项卡) |
|
|
KSM (优化选项卡) |
|
|
4.10.2.2. 固定 CPU
将 vCPU 固定到特定主机的物理 CPU:
- 在主机选项卡中,选择特定主机单选按钮。
在资源分配选项卡中,输入 CPU 固定拓扑,验证配置是否适合固定主机的配置。有关此字段语法 的信息,请参阅虚拟机资源分配设置。
此字段会自动填充,并在激活自动 NUMA 固定时更新 CPU 拓扑。
验证虚拟机配置是否与主机配置兼容:
- 虚拟机的插槽数量不能超过主机的插槽数。
- 每个虚拟插槽的虚拟机内核数不能大于主机的内核数。
- 当主机和虚拟机预期相同的缓存使用时,CPU 密集型工作负载的性能最佳。为了获得最佳性能,每个内核的虚拟机线程数不能大于主机的线程数。
CPU 固定有以下要求:
- 如果主机已启用 NUMA,则必须考虑主机的 NUMA 设置(内存和 CPU),因为虚拟机必须与主机的 NUMA 配置相符。
- 必须考虑 I/O 和仿真程序线程固定拓扑。
- 只能为虚拟机和池设置 CPU 固定,但不能针对模板设置。因此,每当您创建高性能虚拟机或池时,您必须手动设置 CPU 固定,即使它们基于高性能模板。
4.10.2.3. 设置 NUMA 固定策略
要设置 NUMA 固定策略,您需要一个支持 NUMA 的固定主机,至少有两个 NUMA 节点。
手动设置 NUMA 固定策略:
- 单击 。
- 在 NUMA Topology 窗口中,根据需要单击虚拟 NUMA 节点并将它从右侧的框拖到左侧主机的物理 NUMA 节点。
-
从每个 NUMA 节点的 Tune Mode 下拉列表中,选择 Strict、Preferred 或 Interleave。如果所选模式为 Preferred,NUMA Node Count 必须设置为
1
。 - 点击 。
自动设置 NUMA 固定策略:
-
在 资源分配选项卡 CPU 分配项下,从 CPU Pinning Policy 下拉列表中选择
Resize 和 Pin NUMA
。 - 点击 。
声明的虚拟 NUMA 节点的数量和 NUMA 固定策略必须考虑:
- 主机的 NUMA 设置(内存和 CPU)
- 声明主机设备的 NUMA 节点
- CPU 固定拓扑
- IO 和仿真程序线程固定拓扑
- 巨页大小
- NUMA 固定只能针对虚拟机设置,不能用于池或模板。在基于模板创建高性能虚拟机时,您必须手动设置 NUMA 固定。
4.10.2.4. 配置巨页
当虚拟机开始运行时,巨页会被预先分配(默认为禁用动态分配)。
配置巨页:
- 在 Custom Properties 选项卡中,从自定义属性列表中选择 hugepages,这会默认显示 Please select a key…。
以 KB 为单位输入巨页大小。
您应该将大页面大小设置为固定主机支持的最大大小。x86_64 的建议大小为 1 GiB。
巨页大小有以下要求:
- 虚拟机的巨页大小必须与固定主机巨页大小相同。
- 虚拟机的内存大小必须适合固定主机可用巨页的所选大小。
- NUMA 节点大小必须是巨页选择大小的倍数。
启用动态分配巨页:
- 在调度程序中禁用 HugePages 过滤器。
在
/etc/vdsm/vdsm.conf
中的[performance]
部分设置以下内容:use_dynamic_hugepages = true
动态和静态巨页之间的比较
下表概述了动态和静态巨页的优缺点。
设置 | 优点 | 缺点 | 建议 |
---|---|---|---|
动态巨页 |
| 因为碎片导致分配失败 | 使用 2MB 的巨页 |
静态巨页 | 可预测的结果 |
|
以下限制适用:
- 禁用内存热插/热拔
- 主机的内存资源有限
4.10.2.5. 禁用 KSM
为集群禁用内核同页合并(KSM):
-
单击
,再选择集群。 - 点 。
- 在 Optimization 选项卡中,清除 Enable KSM 复选框。