ESXi 虚拟机参数那些事
5255
以下为EXSI中显示的物理CPU的情况 逻辑处理器 72 处理器类型 Intel® Xeon® CPU E5-2686 v4 @ 2.30GHz 插槽数 2 每个插槽内核数 18 超线程 是,已启用
在 ESXi 虚拟机(如 ubuntu-client)的 CPU 设置中,关于以下三个选项的勾选与否,需要根据实际需求权衡:
1. 硬件虚拟化(Expose hardware-assisted virtualization to the guest OS)
作用:允许虚拟机内启用嵌套虚拟化(例如在 Ubuntu 中再运行 KVM 或容器)。
推荐设置:
勾选:如果需要在虚拟机内运行嵌套虚拟化(如 Docker、KVM、VirtualBox 等)。
不勾选:如果虚拟机仅作为普通系统使用(默认即可)。
注意事项:
需要 ESXi 主机的 BIOS 已启用 Intel VT-x/AMD-V。
可能引入安全风险(攻击面扩大)。
2. 向客户机操作系统公开 IOMMU(Expose IOMMU to the guest OS)
作用:允许虚拟机直接管理 DMA 设备(需结合 PCI 直通使用)。
推荐设置:
勾选:如果虚拟机需要直通 PCI 设备(如 GPU、网卡),并在 Ubuntu 中使用 vfio 或 DMA 功能。
不勾选:如果虚拟机仅使用虚拟化设备(如 VMXNET3 网卡)(默认即可)。
注意事项:
启用后需在 Ubuntu 内核参数添加 intel_iommu=on 或 amd_iommu=on。
可能导致轻微性能开销。
3. 启用虚拟化 CPU 性能计数器(Enable virtualized CPU performance counters)
作用:允许虚拟机内使用性能监控工具(如 perf)分析 CPU 性能。
推荐设置:
勾选:需要在 Ubuntu 中调试 CPU 性能(如分析代码热点)。
不勾选:无需性能分析(默认即可)。
注意事项:
可能略微增加宿主机的 CPU 开销。
需客户机操作系统支持(Ubuntu 22.04 默认支持)。
通用建议
选项
典型场景推荐配置
硬件虚拟化(嵌套虚拟化)
不勾选(除非需要运行嵌套虚拟化)
公开 IOMMU
不勾选(除非需要直通 PCI 设备)
虚拟化 CPU 性能计数器
不勾选(除非需性能分析工具)
配置生效方式
修改这些选项后,需 关闭虚拟机电源 再重新启动才能生效。
对于嵌套虚拟化和 IOMMU,需确保 ESXi 主机 BIOS 已启用虚拟化支持(VT-x/AMD-V 和 VT-d/AMD-Vi)。
验证配置
验证嵌套虚拟化(需勾选硬件虚拟化):
# 在 Ubuntu 中检查是否支持 KVM
sudo kvm-ok
# 输出应为:INFO: /dev/kvm exists, KVM acceleration can be used
验证 IOMMU(需勾选公开 IOMMU):
# 在 Ubuntu 中检查内核参数
cat /proc/cmdline | grep iommu
# 输出应包含:intel_iommu=on 或 amd_iommu=on
验证 CPU 性能计数器(需勾选虚拟化性能计数器):
# 在 Ubuntu 中安装 perf 工具
sudo apt install linux-tools-common linux-tools-generic
# 运行 perf 测试
perf stat ls
总结
默认无需勾选:这三个选项均针对特定高级场景,常规虚拟机无需启用。
按需启用:根据实际需求选择(嵌套虚拟化、PCI 直通、性能分析),并注意安全性和性能影响。
在 ESXi 虚拟机的 调度关联性(CPU Affinity) 设置中,结合 超线程(Hyper-Threading) 和 可用逻辑 CPU(72 个) 的配置需要谨慎处理。以下是详细分析和操作建议:
四种插槽内核数配置的性能分析(8 vCPU)
根据你的物理 CPU 拓扑(2 颗 Intel Xeon E5-2686 v4,每颗 18 核,超线程启用,共 72 逻辑 CPU),为 ubuntu-client 虚拟机分配 8 vCPU 时,选择不同 插槽数(Sockets) 和 每个插槽内核数(Cores per Socket) 的配置对性能影响如下:
1. 配置方案对比
配置
插槽数(Sockets)
每个插槽内核数(Cores per Socket)
虚拟拓扑
典型适用场景
8×1
8
1
8 插槽,每插槽 1 核
规避按插槽计费的软件许可
4×2
4
2
4 插槽,每插槽 2 核
通用负载,平衡拓扑
2×4
2
4
2 插槽,每插槽 4 核
NUMA 优化,接近物理拓扑
1×8
1
8
1 插槽,8 核
高性能计算、延迟敏感型应
