易君召
发布于 2026-09-02 / 作者:易君召 / 14 阅读
0

虚拟机性能优化实用设置建议

适用:VMware Workstation / Pro、VirtualBox、KVM、Hyper‑V;分为宿主机层面、虚拟机硬件配置、虚拟机系统内部、虚拟化软件参数、磁盘网络专项优化,全部是可落地实操项。

一、宿主机(物理机)基础优化

宿主机是性能上限,优先调整。

  1. 内存分配原则

    • 不要把物理内存全部分给虚拟机,宿主机至少保留 2‑4GB 空闲内存;多台虚拟机总和内存 ≤ 物理内存的 70‑80%,避免宿主机 swap。

    • 例:物理机 16G,最多分给虚拟机合计 12G;32G 最多分配 24‑26G。

  2. CPU 分配

    • 虚拟机 CPU 核心数不要超过物理 CPU物理核心数,不要盲目给满逻辑超线程。

    • 多虚拟机:不要单台虚拟机直接拉满全部 CPU,预留核心给宿主机。

    • BIOS 开启:Intel‑VT‑x / AMD‑V 硬件虚拟化,关闭 Secure Boot 如遇到虚拟化异常。

  3. 磁盘介质至关重要

    • 虚拟机磁盘文件(vmdk/vdi/qcow2)务必放在 SSD/NVMe,机械硬盘跑虚拟机 IO 会严重卡顿。

    • 宿主机磁盘尽量留足空闲空间,SSD 建议空闲≥15%。

  4. 宿主机后台减负

    • 运行虚拟机时,关闭占用高的软件:视频剪辑、游戏、云盘同步、全盘杀毒扫描。

    • 电源计划设置为「高性能」,笔记本插上电源,禁止节能降频。

二、虚拟机硬件配置(虚拟化软件内设置)

CPU

  1. 开启CPU 虚拟化增强:VMware 打开虚拟化 Intel VT‑x/EPT 或 AMD‑V/RVI;KVM 默认开启。

  2. 禁用不必要特性:不需要的热插拔、虚拟 CPU 热插拔关闭。

  3. 虚拟机 CPU 插槽数:优先少插槽多核心,例如 4 核设置为 1 插槽 4 核,而不是 4 插槽 1 核。

内存

  1. 锁定内存(推荐):VMware 勾选 “锁定内存”,防止虚拟机内存被宿主机交换到磁盘;内存不要超过物理可用内存。

  2. 关闭内存超额 / 内存复用(生产环境强烈不建议内存超配,桌面少量多开可酌情)。

  3. 关闭虚拟机内存热插拔,减少开销。

磁盘(IO 是虚拟机最常见瓶颈)

  1. 磁盘模式:使用固定大小磁盘优先于动态扩容磁盘。动态磁盘会持续膨胀,伴随 IO 性能损耗;动态盘适合测试,长期使用转换为固定盘。

  2. 磁盘控制器:

    • Windows 虚拟机:VMware 使用 LSI SAS / PVSCSI;不要用老旧 IDE。

    • Linux 虚拟机:使用 PV SCSI/VirtIO‑Block(KVM),VirtIO 驱动性能远高于模拟磁盘。

  3. 快照不要滥用!大量快照链会急剧降低磁盘性能;定期删除、合并快照,生产环境禁止长期保留快照。

  4. 尽量不要将多个高 IO 虚拟机共用同一块物理磁盘。

网卡

  1. 更换高性能半虚拟化网卡:

    • VMware:VMXNET3,抛弃 E1000。

    • KVM:VirtIO‑Net。

    • VirtualBox:Paravirtualized Network。

  2. 不要用 NAT 做高吞吐业务,需要高性能优先使用桥接模式

显卡显示

  1. 安装增强工具:VMware Tools / VirtualBox 增强功能 /open‑vm‑tools,不要用系统自带通用驱动。

  2. 3D 图形加速:桌面虚拟机开启 3D 加速;服务器虚拟机直接关闭 3D 加速,节省资源。

  3. 调小虚拟机显存,服务器虚拟机显存设置 128M 足够。

三、虚拟机内部系统优化

Windows 虚拟机

  1. 安装官方虚拟化增强工具 open‑vm‑tools(VMware 推荐,比 VMware Tools 新版本更好)。

  2. 关闭休眠、快速启动:

    powercfg /hibernate off
    
  3. 关闭系统还原、不需要的系统服务、视觉特效调为最佳性能。

  4. 禁用磁盘碎片自动整理(虚拟磁盘不需要碎片整理)。

  5. pagefile 虚拟内存:

    • 如果分配内存≥8G,可以适当缩小页面文件;不要完全关闭,保留最小 2‑4GB。

Linux 虚拟机

  1. 安装半虚拟化驱动:VirtIO 系列驱动。

  2. 调整 swap 策略:/proc/sys/vm/swappiness 设置为 10,尽量少使用 swap。

    sysctl vm.swappiness=10
    
  3. 文件系统:使用 XFS/ext4,关闭 atime 挂载参数,noatime 减少磁盘写。

  4. 日志服务:调整日志级别,减少不必要磁盘刷写。

  5. 时间同步:使用虚拟机工具时间同步或者 chrony,不要双时间源冲突。

四、各虚拟化软件专属关键参数

VMware Workstation / Pro

  1. 虚拟机 vmx 配置文件(关机后编辑)追加优化项

mem.hotadd = "FALSE"
vhv.enable = "TRUE"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"

vhv.enable 允许虚拟机内部嵌套虚拟化(需要才开,不需要关闭减少开销)

KVM(qemu)

  1. 磁盘使用 qcow2,关闭缓存不安全模式:cache=none,aio=native

  2. CPU 模型:host‑passthrough,透传 CPU 特性,性能接近裸机。

  3. IO 线程分离,磁盘 IO 使用独立线程。

Hyper‑V

  1. 使用第二代虚拟机,放弃第一代;一代模拟设备性能很差。

  2. 启用检查点改为生产检查点,不要频繁快照。

  3. 关闭动态内存(负载稳定业务建议静态内存,动态内存会带来抖动)。

VirtualBox

VirtualBox 整体性能弱于 VMware/KVM,不适合高负载。

  1. IO 缓存开启;禁用不必要 USB 控制器;开启 VirtIO 设备。

五、避坑清单(最容易踩坑)

  1. ❌ 大量快照链:快照不是备份,快照越多 IO 越慢,用完及时合并。

  2. ❌ 动态磁盘无限增长:长期运行建议固定大小磁盘。

  3. ❌ 内存超配:宿主机频繁 swap,虚拟机直接卡顿。

  4. ❌ 虚拟机文件放在机械硬盘。

  5. ❌ 使用老旧模拟设备:IDE 磁盘、E1000 网卡,优先半虚拟化 virtio/vmxnet3。

  6. ❌ 笔记本使用电池运行虚拟机,CPU 降频性能暴跌。

  7. ❌ 嵌套虚拟化不需要时打开,带来额外开销。

六、性能排查小技巧

  1. 宿主机优先看:宿主机磁盘 IO、swap 是否在跑,磁盘 100% 占用是虚拟机卡顿头号元凶。

  2. 虚拟机内:看 CPU、内存、磁盘 IO 等待 % iowait;iowait 高就是磁盘瓶颈。

  3. 如果需要,我可以给你一份:VMware vmx 完整优化模板、KVM xml 配置示例、Linux 虚拟机调优 sysctl.conf 配置片段。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/virtual-machine-performance-optimization-settings-guide

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/