在VMware环境中配置Rocky Linux虚拟机的内存分配需遵循以下实践:
-
初始配置:通过vSphere Client创建虚拟机时,在『自定义硬件』中设置内存大小。建议根据应用需求预留最小值(如2GB),避免过度分配导致宿主机资源争用。
-
动态内存管理:启用『内存热添加』功能(需虚拟机硬件版本≥11),允许在不关机情况下扩容。但需注意:
- Rocky Linux 8/9需安装open-vm-tools并加载
vmw_balloon
驱动
- 修改
/etc/default/grub
添加transparent_hugepage=always
避免内存碎片
-
性能调优:
- 预留设置:对关键业务虚拟机设置内存预留,防止因宿主机内存回收机制(如TPS/内存压缩)导致性能波动
- NUMA对齐:在大内存配置(如>128GB)时,通过
numactl
工具检查NUMA节点分布,避免跨节点访问延迟
-
监控与诊断:
- 使用
vmware-toolbox-cmd stats mem
获取气球驱动回收的内存量
- 当SWAP使用率持续>5%时(通过
free -m
监测),需考虑扩容
常见挑战及解决方案:
- 内存热添加失效:常因未更新内核导致,需升级至Rocky Linux 8.5+/9.0+内核(5.14+)并确认
/sys/devices/system/memory/auto_online_blocks
设为1
- 内存泄漏定位:组合使用
smem --system -r
和vmware-memstats -r
区分GuestOS与Hypervisor层的内存占用
- 气球驱动冲突:当同时运行内存密集型应用和气球驱动时,可能触发OOM Killer,建议通过
echo 15 > /proc/sys/vm/panic_on_oom
改为仅终止单一进程
最佳实践表明,生产环境应保留宿主机物理内存的5-10%作为缓冲,并通过vCenter的『内存活动』监控页持续观察『主动/空闲内存』比例,维持在3:1以上可确保最佳性能。