获取验证码
William Lam官方技术速报解析AMD第四/五代锐龙架构底层熵(随机数)生成速度缺陷:Zen4/Zen5处理器RDSEED硬件随机指令生成效率比Zen3低50倍,NSX Manager大量加密、证书、隧道业务持续消耗熵资源,引发虚拟机CPU负载长期居高不下;给出**ESXi主机内核参数+NSX虚拟机高级配置**双层修复方案,实测优化后NSX负载均值降至5以内,适配VCF 9.0/9.1全套私有云环境,同时区分哪些VCF组件可复用该优化。
有VMware全系列产品官方资源和定制版资源需求的可以移步:
AMD Zen4/Zen5硬件随机数生成速率极低,NSX-T控制器频繁申请熵资源造成CPU满载;完整优化分两步:
1、ESXi宿主机修改entropySources内核参数切换熵来源;
2、NSX Manager虚拟机开启宿主机熵通道isolation.tools.getEntropy.disable=FALSE;仅大量加密/证书业务组件(NSX)收益明显,VCFMS、自动化组件无显著改善;全套配置修改后需重启宿主机与虚拟机生效,实测负载大幅回落。
AMD Zen4、Zen5平台RDSEED/RDRAND硬件随机指令生成速度相比Zen3慢约50倍,高并发加密场景下系统熵池快速耗尽,内核持续占用CPU循环等待随机数据,拉高整机负载。VMkernel日志频繁打印`NRandomHwrng: Out of entropy, refreshing`熵耗尽告警。
NSX-T负责东西向隧道加密、TLS证书签发、防火墙加密校验、身份令牌生成,每秒高频请求高质量随机熵;在AMD物理服务器虚拟化部署时,虚拟机内部熵池供给跟不上业务消耗,持续产生CPU自旋等待,负载长期高于10甚至20。
VCFMS、SDDC Manager、vCenter等组件熵请求频次远低于NSX,同AMD硬件不会出现明显高负载,该优化仅针对NSX等高加密负载虚拟机有效。
1、SSH登录每台承载NSX虚拟机的AMD ESXi主机; 2、执行ESXCLI切换熵来源,关闭低效硬件RDSEED,优先使用中断混合熵池:
# 关闭硬件随机源禁用开关 esxcli system settings kernel set -s disableHwrng -v FALSE # entropySources=1:仅使用系统中断熵,避开AMD低效RDSEED esxcli system settings kernel set -s entropySources -v 0 # 或推荐参数1(纯中断熵,Zen4/5最优) esxcli system settings kernel set -s entropySources -v 1
3、参数写入内核启动项,**重启ESXi主机**才能永久生效; 4、验证配置:`esxcli system settings kernel list | grep entropySources`。
1、vCenter找到对应NSX Manager虚拟机,执行关机; 2、右键「编辑设置」→「虚拟机选项」→「高级」→「编辑配置」; 3、新增参数: 参数名:isolation.tools.getEntropy.disable 参数值:FALSE 含义:允许客户操作系统直接读取ESXi宿主机预生成的充足熵池,不再依赖虚拟机内部缓慢硬件随机源; 4、保存配置,开机启动NSX虚拟机。
优化前:NSX Manager平均负载持续>10,多核CPU长期高占用,页面加载、策略下发卡顿;
优化后:稳定降至5以内,加密业务、证书生成无CPU自旋等待,策略同步响应速度提升;
前置要求:仅同时完成ESXi主机内核配置+虚拟机高级参数,才能达到该优化效果,只改其中一项无明显改善。
NSX-T Manager、NSX Edge网关(大量IPsec/Geneve隧道加密)
VCFMS管理服务、SDDC Manager、vCenter Server、VCF Automation、vSAN控制器 作者补充:仅NSX在其实验室环境出现显著CPU异常,其余组件熵消耗低,无需部署该优化。
# 连接vCenter
Connect-VIServer vc01.vcf.lab
# 筛选所有AMD CPU ESXi主机
$amdHosts = Get-VMHost | Where {$ProcessorType -match "AMD"}
foreach ($host in $amdHosts){
$esxcli = Get-EsxCli -VMHost $host -V2
# 设置熵源参数
$arg1 = $esxcli.system.settings.kernel.createargs()
$arg1.setting = "entropySources"
$arg1.value = "1"
$esxcli.system.settings.kernel.invoke($arg1)
Write-Host "已配置主机 $host 熵参数,需重启生效"
}
# 批量修改所有NSX虚拟机高级配置
$nsxVms = Get-VM | Where {$Name -match "nsx-manager"}
foreach ($vm in $nsxVms){
if($vm.PowerState -ne "PoweredOff"){
Stop-VM $vm -Confirm:$false
}
New-AdvancedSetting -Entity $vm -Name isolation.tools.getEntropy.disable -Value FALSE -Confirm:$false
Start-VM $vm
}变更有重启依赖:ESXi主机需要重启,建议维护窗口操作;
多集群场景:所有承载NSX Edge/Manager的AMD物理主机统一配置,不可漏配;
Intel服务器不受该缺陷影响,无需执行熵源修改;
升级VCF 9.1后配置永久保留,无需重复操作;
若部署外部HSM硬件熵源,ESXi 8U1+可搭配entropyd服务进一步提升熵供给。
Q1:只改虚拟机isolation.tools.getEntropy.disable=FALSE,不修改ESXi主机参数有用吗? A:几乎无效果,宿主机本身RDSEED生成缓慢,必须底层切换熵池来源。
Q2:VCF自动化/VCFMS高CPU能否套用这套优化? A:作者实测无收益,仅NSX加密业务熵消耗巨大,其余组件不触发该瓶颈。
Q3:Zen3 AMD服务器需要配置吗? A:Zen3 RDSEED速度正常,不会出现熵耗尽CPU高负载,无需修改。
Q4:修改后是否影响FIPS加密合规? A:entropySources=1使用系统中断熵,符合vSphere安全规范,不破坏FIPS基线。
AMD Zen4/Zen5处理器硬件随机数生成效率存在原生短板,部署NSX-T Manager时频繁熵耗尽会导致虚拟机CPU负载居高不下;VCF9.0/9.1环境完整优化分为ESXi宿主机内核切换熵池、NSX虚拟机开启宿主机熵读取通道两步,两者缺一不可。实测优化后NSX负载显著回落,该方案仅对NSX加密类组件生效,vCenter、VCFMS等无优化价值,支持PowerCLI批量自动化配置,建议在维护窗口统一修改并重启宿主机完成落地。