
KVM 性能优化指南让虚拟机跑出物理机的性能这是KVM 虚拟化从入门到实战系列的第 6 篇。虚拟机能用只是第一步生产环境要求好用、够快。这篇从 CPU、内存、磁盘、网络四个维度教你调优。一、CPU 优化1. 使用 virtio CPU 模型 / 正确配置 vCPUbashvirsh vcpuinfo vm01 # 查看 vCPUvirsh setvcpus vm01 8 --live # 热插拔 vCPU建议 vCPU 总数不要超过物理 CPU 核数避免过度订阅导致性能下降。2. CPU 固定 / 绑定Pinning把虚拟机的 vCPU 绑定到特定物理核避免上下文切换抖动bash# 编辑虚拟机配置添加 cpu pinningvirsh edit vm01# cputune# vcpupin vcpu0 cpuset0/# vcpupin vcpu1 cpuset1/# /cputune3. 启用 CPU 直通NUMA 场景对于计算密集、对延迟敏感的业务如数据库可考虑 CPU 直通--cpu host-passthrough让虚拟机直接使用宿主 CPU 特性。二、内存优化1. 合理设置内存与气球Balloonbashvirsh setmem vm01 8G --livevirsh setmaxmem vm01 16G --config2. 大页内存HugePages大页内存能显著减少 TLB miss对数据库类应用提升明显bash# 配置大页2M 页 × 2048 4Gecho 2048 /proc/sys/vm/nr_hugepagesmount -t hugetlbfs hugetlbfs /dev/hugepages# 虚拟机配置使用大页virsh edit vm01# memoryBackinghugepages//memoryBacking三、磁盘 I/O 优化重点1. 使用 virtio-blk 半虚拟化驱动virtio 是 KVM 性能的关键务必用 virtio 磁盘bashvirsh edit vm01# disk 中的 bus 改为 virtio# target devvda busvirtio/virtio 比 IDE/SATA 磁盘性能提升数倍是磁盘优化的第一要务。2. 调整 I/O 调度与缓存bash# 将虚拟机磁盘缓存设为 none避免双缓存# driver nameqemu typeraw cachenone/3. 使用 RAW 大扇区对齐RAID 卡和 SSD 场景下RAW 格式 4K 对齐能获得最佳 IOPS。四、网络优化1. virtio-net 网络驱动bash# 网卡 model 使用 virtiovirsh edit vm01# interface typebridge# model typevirtio/# /interface2. 多队列Multi-queuebash# 启用网卡多队列配合多核提升吞吐# driver namevhost queues4/五、性能优化清单快速自查维度优化项优先级CPU绑定核、host-passthrough高内存大页内存高磁盘virtio cachenone最高网络virtio 多队列高小结性能优化没有银弹virtio 驱动是最大的性能杠杆务必优先保证。在此基础上CPU 绑定、大页内存、RAW 磁盘能进一步榨干性能。下一篇介绍快照、克隆与迁移保障业务的可用性。