当前位置:首页>Linux>linux虚拟机性能优化

linux虚拟机性能优化

  • 2026-10-11 06:54:02
linux虚拟机性能优化

点击蓝字

  关注我们 开车不迷路

程序猿知识星球

每天提供最新IT类资讯、原创内容、运维经验和运维知识分享!偶尔还会有福利频道,免费上车,坚持不付费为原则,免费分享,大家的关注就是对我最大的支持!

软件教程合集(版本合集)

Ubuntu 教程

人工智能(AI)

postgres数据库

linux shell 新手简易教程

Linux 虚拟机全方位性能优化方案

适用于 VMware、VirtualBox、KVM、Hyper-V 各类虚拟化平台,分为虚拟化硬件层配置、系统内核优化、磁盘 IO、内存、CPU、网络、服务精简六大模块,兼顾生产稳定性与性能提升。

一、虚拟化平台底层硬件配置(最关键,优先调整)

1. CPU 配置

CPU 核心分配原则

  • 虚拟机 CPU 总数 ≤ 物理 CPU 逻辑核心数,切勿超额分配

  • 推荐:1vCPU / 业务进程,多业务分配多核,不要单核心拉满负载

  • KVM/VMware:开启 CPU 型号直通(CPU Passthrough),关闭虚拟化 CPU 伪装,减少指令集损耗

关闭节能策略

  • 宿主机 BIOS 关闭:C-State、CPU 节能、睿频按需调度;生产环境固定 CPU 主频

2. 内存分配

  • 禁止内存超分配,内存满载会触发 swap,性能暴跌

  • 开启内存透明大页(THP) 或宿主机大页预留

  • VMware:关闭内存按需膨胀;KVM:预分配内存

3. 磁盘(IO 瓶颈高发区)

磁盘类型首选:

  • KVM:virtio 磁盘

  • VMware:SCSI / NVMe 磁盘,摒弃 IDE 老旧磁盘

磁盘介质:固态硬盘 SSD/NVMe > 机械硬盘

磁盘模式:

  • 生产:独立持久磁盘,关闭快照、精简置备(精简盘碎片化严重)

  • 测试可精简置备,定期碎片整理

禁用频繁快照、自动备份,快照过多严重拖慢 IO

4. 网卡

统一更换虚拟化高性能网卡驱动:

  • virtio-net(KVM)、VMXNET3(VMware),不要默认 E1000 老旧网卡

二、Linux 系统内核基础优化(通用 CentOS7/8、Ubuntu、Debian)

1. 内核升级

新版内核优化虚拟化调度、virtio 驱动、内存管理

# CentOSyum update kernel -y# Ubuntuapt update && apt install linux-image-generic -y

2. 关闭不必要服务,削减资源开销

# 查看开机自启服务systemctl list-unit-files --type=service --state=enabled# 按需关闭无用服务示例systemctl disable --now firewalld postfix avahi-daemon bluetooth cups

三、内存优化(虚拟机重中之重)

1. 调整内核内存参数 /etc/sysctl.conf

# 减少swap使用倾向,数值0~100,越小越优先使用物理内存vm.swappiness = 10# 回收页缓存倾向vm.vfs_cache_pressure = 50# 禁用透明大页碎片(数据库场景推荐关闭,普通业务开启)# never=关闭,always=开启echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag

生效命令:

sysctl -p

2. 定时清理缓存(负载低时段执行)

# 清理页缓存sync; echo 1 > /proc/sys/vm/drop_caches# 清理 dentries 和 inodessync; echo 2 > /proc/sys/vm/drop_caches# 清空所有缓存sync; echo 3 > /proc/sys/vm/drop_caches

3. 关闭 OOM 过度激进杀死进程

# sysctl.confvm.oom_kill_allocating_task = 0

四、磁盘 IO 性能优化

1. 磁盘调度算法修改

虚拟机推荐 noop 调度算法(宿主机统一调度,虚拟机无需额外 IO 调度)

# 临时生效echo noop > /sys/block/vda/queue/scheduler# 永久配置(CentOS7)vi /etc/grub2.cfgelevator=noop# 更新grubgrub2-mkconfig -o /boot/grub2/grub.cfg

2. 文件系统挂载优化

修改 /etc/fstab,增加挂载参数:

# 示例ext4/dev/vda1  /  ext4  defaults,noatime,nodiratime,barrier=0  0 0

参数解释:

  • noatime,nodiratime:不记录文件访问时间,大幅减少磁盘写入

  • barrier=0:关闭写入屏障,提升 IO(断电有丢数据风险,有 UPS 可开启)

3. 关闭磁盘写入日志、精简日志输出

日志太多持续占用 IO:

  • /etc/rsyslog.conf 缩减日志级别

  • 关闭 systemd 多余日志:journalctl --vacuum-size=100M 限制日志大小

五、CPU 调度优化

安装 cpufreq 工具,设置 CPU 性能模式

yum install cpupowerutils -y# 性能模式,全程满频运行cpupower frequency-set -g performance

可选模式:performance(性能)、ondemand(按需)、powersave(省电)

关闭 CPU 闲置省电:

echo 1 > /sys/devices/system/cpu/smt/control

六、网络性能优化

编辑 /etc/sysctl.conf 添加网络参数:

# 调高TCP缓冲区net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216# 开启TCP快速回收、复用端口net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_fin_timeout = 30# 扩大端口范围net.ipv4.ip_local_port_range = 1024 65535

生效:sysctl -p

七、虚拟化专属驱动安装(大幅降损耗)

VMware 虚拟机

安装 VMware Tools /open-vm-tools(推荐开源版)

# CentOSyum install open-vm-tools open-vm-tools-desktop -y# Ubuntuapt install open-vm-tools open-vm-tools-desktop -y

作用:时间同步、显存适配、文件拖拽、优化虚拟化硬件调用

KVM 虚拟机

  • 系统默认自带 virtio 驱动,无需额外安装,确认网卡磁盘均为 virtio 即可

八、额外进阶优化

时间同步

虚拟机时钟容易漂移,配置 chrony 时间同步:

yum install chrony -ysystemctl enable --now chronyd

禁用 NUMA(小型虚拟机)

单核 / 多核少于 8 核虚拟机关闭 NUMA,避免调度开销

grub添加参数:numa=off

内核 dump 崩溃转储关闭(节省磁盘内存)

systemctl disable kdump

定期监控性能瓶颈

# CPU负载top / htop# 磁盘IOiostat -x 1# 内存free -h# 网络iftop

九、避坑禁忌

  1. 内存超额分配、CPU 超配:极易卡顿、swap 飙升

  2. 大量快照、差分磁盘:磁盘碎片化,IO 暴跌

  3. 机械硬盘跑高并发业务:天生 IO 短板

  4. 长期不清理日志、缓存:磁盘占满、读写缓慢

最新文章

随机文章