Linux 系统中 QEMU 怎么进行虚拟机性能调优

轻杰酱_3077

轻杰酱_3077

2026-07-15

1071人浏览

原创

qemu虚拟机linux性能调优核心是减少模拟开销、绕过低效路径、精准干预各层瓶颈:启用kvm加速、设cpu为host模式、合理分配vcpu、预分配内存并启用大页、用virtio-scsi+raw+cache=none+aio=native精简磁盘路径、virtio-net+vhost=on提升网络效率。

linux 系统中 qemu 怎么进行虚拟机性能调优

QEMU 虚拟机在 Linux 上的性能调优,核心是减少模拟开销、绕过低效路径、让资源分配更贴合实际负载。不是堆参数,而是理清每层瓶颈后精准干预。

CPU 与加速器配置

默认不启用硬件加速时,QEMU 用纯软件模拟(TCG),性能极差。必须优先启用 KVM:

  • 确认宿主机支持:grep -E "(vmx|svm)" /proc/cpuinfo 和 lsmod | grep kvm 都应有输出
  • 启动时强制启用 KVM:-accel kvm,thread=on(thread=on 启用多线程 TCG 回退,但正常情况下不会触发)
  • CPU 模型设为 -cpu host,migratable=off,直接暴露宿主 CPU 特性,避免指令翻译损耗;若需跨主机迁移,改用 host-passthrough 或具体型号如 cortex-a72,pmu=on(ARM 场景)
  • vCPU 数量不等于物理核心数:建议 -smp sockets=1,cores=N,threads=1,N 取宿主机逻辑核心数的 60%~80%,并避开编号为 0 的核心(留给宿主调度器)

内存与大页优化

内存访问延迟对整体响应影响极大,尤其在高并发或图形负载下:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 预分配内存防止运行中动态申请:-mem-prealloc 必须配合 -m 使用,例如 -m 4G -mem-prealloc
  • 启用透明大页(THP)或显式挂载 hugetlbfs:-mem-path /dev/hugepages -mem-prealloc,页面大小默认 2MB,可显著降低 TLB miss
  • 禁用内存合并(KSM)除非宿主机内存严重不足:echo 0 | sudo tee /sys/kernel/mm/ksm/run,KSM 会引入扫描开销和不确定性延迟

磁盘 I/O 路径精简

这是卡顿最常见的根源——默认 IDE + qcow2 + 缓存叠加,I/O 路径长且冗余:

  • 控制器必须用 virtio-scsi(非 virtio-blk),支持多队列和命令排队:-device virtio-scsi-pci,id=scsi0 + -drive if=none,id=hd0,format=qcow2,file=disk.qcow2,cache=none,aio=native + -device scsi-hd,drive=hd0
  • 镜像格式优先选 raw;若需快照,用 qcow2 但关闭延迟元数据:qemu-img create -f qcow2 -o lazy_refcounts=off,l2-cache-size=4M,refcount-cache-size=2M disk.qcow2 20G
  • 缓存策略统一设为 cache=none,避免宿主机 page cache 与 guest 文件系统 cache 双重缓存;搭配 aio=native 启用 Linux io_uring 或 epoll 异步 I/O
  • 宿主机磁盘调度器设为 none(NVMe/SSD)或 deadline(HDD):echo none | sudo tee /sys/block/nvme0n1/queue/scheduler

网络与中断效率

网络吞吐和延迟敏感型应用(如远程桌面、实时服务)依赖高效中断处理:

  • 网卡必须用 virtio-net,并启用多队列:-netdev tap,id=net0,ifname=tap0,script=no,downscript=no,vhost=on + -device virtio-net-pci,netdev=net0,mq=on,vectors=16
  • vhost=on 将数据平面移入内核态,大幅降低 CPU 占用;vectors=16 匹配 vCPU 数,确保每个队列有独立 MSI-X 中断向量
  • 如需极致确定性,可对 QEMU 进程做 CPU 绑定:taskset -c 2-5 qemu-system-x86_64 ...,再结合 -smp 分配 vCPU 到相同物理核组,减少跨核 cache 同步

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

linux 虚拟机

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3850

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3313

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2453

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5890

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5522

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3253

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2765

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2979

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习