CentOS 虚拟机资源分配策略
一 核心原则
- 需求驱动与基线先行:以业务类型建立资源基线(如开发环境可用2 核 CPU / 4GB 内存 / 50GB 磁盘起步),并按峰值与增长预留安全余量,避免过度分配导致抖动与争用。虚拟化层需开启硬件虚拟化(Intel VT‑x / AMD‑V),如需设备直通则启用IOMMU(VT‑d / AMD‑Vi)。
- 可扩展性优先:优先选择支持在线变更的维度(如 CPU 热添加、磁盘在线扩容),将“减少资源”的操作规划为停机窗口任务,降低对业务连续性的影响。
- 性能与稳定性并重:存储采用VirtIO半虚拟化驱动、合理的缓存/调度策略;必要时进行CPU 绑定 / NUMA 亲和以隔离噪声、提升可预期性。
- 容量与成本平衡:在虚拟化平台允许的前提下进行适度超配(尤其是 CPU),但需以监控与限流策略兜底,避免“超卖”引发雪崩。
二 各资源维度策略与可变更性
| 资源维度 |
分配建议 |
在线变更能力 |
关键注意点 |
| CPU |
以“插槽数×每插槽核心数”规划;启用热添加需提前设置最大 vCPU |
多数平台支持热增;热减通常不支持或需重启 |
热添加后需在Guest 内激活新 CPU(如写入/sys 使能);可做vCPU 绑定 / emulatorpin提升隔离性 |
| 内存 |
结合工作集与文件系统缓存设定;避免过度超配 |
多数平台支持热增;热减需停机 |
部分平台/场景不支持内存超配;变更内存预留常需重启;注意宿主机保留内存 |
| 磁盘容量 |
以精简置备节省空间或厚置备换取稳定 I/O;优先VirtIO |
支持在线扩容(取决于平台与 Guest) |
扩容后需在Guest 内扩展分区/文件系统/LVM;容量通常只增不减 |
| 磁盘 I/O |
选择VirtIO、合理缓存模式;SSD/NVMe 选NOOP或Deadline |
部分平台支持在线限速/IOPS 调整 |
避免不安全缓存策略;结合负载选择调度器与队列深度 |
| 网络 |
按带宽与连通性选择桥接 / NAT / 仅主机;必要时做带宽/QoS |
一般可热增网卡/调整策略 |
克隆后注意MAC 冲突与网卡残留配置清理 |
说明:不同平台(如 KVM/QEMU、VMware vSphere/Workstation、VirtualBox)在“是否支持热变更、变更生效条件、默认策略”上存在差异,上表给出通用可行做法与注意点。
三 不同平台的置备差异要点
- VMware vSphere/Workstation:磁盘置备常见有厚置备延迟置零(创建快、性能较好)、厚置备置零(创建慢、性能最佳)、精简置备(按需分配、节省空间但 I/O 高峰可能抖动)。开发/测试常用精简置备,重 I/O 业务倾向厚置备置零。
- KVM/QEMU:磁盘优先VirtIO;缓存模式常用writeback/none/writethrough(权衡性能与数据安全);I/O 调度器在虚拟化场景常选NOOP/ Deadline;支持CPU 热添加与vCPU 绑定等能力。
- VirtualBox:开发环境可用动态分配节省空间;安装Guest Additions提升图形/存储/时钟同步等性能与集成度。
四 落地配置示例与命令
-
KVM/QEMU 创建与热添加示例
- 创建基础虚拟机(示例):
- virt-install --name=myvm --memory=2048 --vcpus=2 --os-type=linux --os-variant=centos7.0 --disk path=/var/lib/libvirt/images/myvm.img,size=20 --cdrom=/path/to/centos.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
- CPU 热添加(宿主机执行,热增到 4 核):
- virsh setvcpus myvm 4 --live
- 在 Guest 内激活新 CPU(示例激活 CPU2):
- echo 1 > /sys/devices/system/cpu/cpu2/online
- 说明:热减通常不支持;如需持久生效与更细粒度亲和,可编辑域 XML 的 做 vCPU 绑定。
-
VMware 磁盘置备选择要点
- 重 I/O/数据库:选厚置备置零(创建慢、运行时性能稳定)。
- 一般业务且追求创建速度:选厚置备延迟置零。
- 开发/测试、空间敏感:选精简置备(注意高峰 I/O 时延与碎片)。
五 运行时优化与监控
- CPU 与 NUMA:对时延敏感负载做vCPU 绑定 / emulatorpin,减少调度干扰;结合NUMA 拓扑规划插槽与内存亲和。
- I/O 与文件系统:Guest 内为 SSD/NVMe 选择NOOP或Deadline;数据库常见组合为Deadline + XFS;定期执行 fstrim(SSD)并监控 iostat/iotop 观察延迟与 IOPS。
- 内存与复用:在内存紧张环境可启用KSM合并相同内存页,提高密度(需评估开销)。
- 容量管理:磁盘在线扩容后,记得在 Guest 内扩展分区/文件系统/LVM;容量通常只增不减,规划时预留余量。