qemu-kvm IO优化

这篇具有很好参考价值的文章主要介绍了qemu-kvm IO优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要是磁盘方面的IO资源优化

 四个方面去着手优化:

  1.磁盘类型选择
  2.缓存模式选择
  3.AIO 异步读写方式选择
  4.磁盘IO调度器选择

1. 磁盘的类型有IDE 、SATA 以及virtio 三种
  建议使用 virtio

2. 磁盘缓存模式

  目前KVM这块支持5种磁盘缓存模式,writethrough、writeback、none、directsync或者unsafe。一般用到的就是前面3种,后面两种几乎不会使用。
 writethrough:(直写模式)数据直接写入磁盘里,不使用缓存;在数据更新时,同时写入缓存Cache和后端存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。
 writeback:(回写模式)在数据更新时只写入缓存Cache。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。
 none:这种模式作用在Guest OS Pagecache和Physical Disk Cache中,相当于虚拟机能直接访问宿主机的磁盘,性能不错!
 
 性能上: writeback > none > writethrough 
 安全上 :writeback < none < writethrough 

3. aio

  这块分为两种,一种是native方式,还有一种是thread方式。
 Kernel native AIO : Kernel的原生态异步IO实现。
 Threaded aio : linux用户空间异步IO的实现,其实它不是真正的异步IO,是通过启动一定数量的 blocking IO线程来模拟异步IO。这种实现有不少缺点,毕竟有不少线程开销,还在改进中。
 因此,我们KVM里选择AIO这块选择Kernel的原生态的native更好。 

4.调度器

  主要是物理机上的调度器选择
 目前Linux 磁盘IO调度主要有3种,NOOP ,Deadline ,CFQ
  4.1 Deadline I/O scheduler :用过期时间来排序io操作顺序,保证先出现的io请求有最短的延迟时间,相对于写操作,给读操作更优先的级别,是比较好的一个调度模式。特别适合于读取较多的环境(比如数据库,Oracle 10G 之类)。
  4.2 NOOP (elevator=noop): 这个调度模式会把所有的数据请求直接合并到一个简单的队列里。在有些SAN 环境下,这个选择可能是最好选择。适用于随机存取设备, 不适合有机械结构的存储器。因为没有优化顺序,会增加额外的寻道时间。属于最简单的一个调度模式,无视io操作优先级和复杂性,执行完一个再执行一个,如果读写操作繁多的话,就会造成效率降低。
  4.3 CFQ I/O scheduler:完全公平队列,是anticipatory模式的替代品,没有过多的做预测性调度,而是根据给定的进程io优先级,直接来分配操作的顺序。这个模式在linux上表现良好,但也许并不是最适合android的io调度模式,太强调均衡,而降低了连续读写数据的性能。适用于有大量进程的多用户系统。
 Linux默认是deadline,我们可以通过命令 cat /sys/block/sd*/queue/scheduler 查看

 如果要更改模式,我们就用: 
  格式:echo {SCHEDULER-NAME} > /sys/block/{DEVICE-NAME}/queue/scheduler 
  例:echo cfq > /sys/block/sda/queue/scheduler 改成cfq模式

5. vcpu超频

  加快虚拟化层的io处理速度
 vcpu throttle  vcpu默认是0.02ms调度一次,可以修改这个值加快


限制虚拟机的磁盘资源调用,实现每台虚拟机对物理机的磁盘资源使用可控
# virsh blkiotune c7-1 //查看当前虚拟机权重状态
# virsh blkiotune c7-1 --weight 500 //通过命令修改权重为500文章来源地址https://www.toymoban.com/news/detail-402704.html

到了这里,关于qemu-kvm IO优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kvm qemu虚拟机的创建和启动

    qemu-img create -f qcow2 win1021H1.qcow2 10G sudo qemu-system-x86_64 -enable-kvm -m 8G -smp 4 -boot once=d -cdrom ./iso/cn_windows_7_enterprise_with_sp1_x64_dvd_u_677685.iso -hda ./win7_x64.qcow2 -vnc :1 -usb -usbdevice tablet 如果没有指定-hda ./win7.qcow2,则在安装系统的时候没有磁盘,如下图片是增加了之后才有的磁盘 默认不

    2024年02月12日
    浏览(51)
  • Docker网络(网络通信),资源控制(CPU优化,内存优化,磁盘优化),数据管理(数据卷,端口映射,容器互联)

    目录 docker网络 网络实现原理 网络实现实例 网络模式 查看Docker中的网络列表: 指定容器网络模式 模式详解 Host模式(主机模式): Container模式(容器模式): None模式(无网络模式): Bridge模式(桥接模式): 自定义网络: cpu优化概述 1. 资源限制: 2. CPU 实时调度策略:

    2024年01月16日
    浏览(84)
  • python可视化管理kvm虚拟机(使用libvirt、qemu连接虚拟机)

    对于云计算的实践,在虚拟机上面布置kvm虚拟机后使用python调用libvirt库进行远程可视化管理,实现输出虚拟机信息、新建虚拟机、删除虚拟机等功能,并在虚拟机集群上面运行mpi代码。 用pycharm专业版连接kvm的步骤见本文章。 mpi代码见本文章。

    2024年02月16日
    浏览(41)
  • qemu+kvm安装银河麒麟V10SP1 arm64 虚拟机

    系统镜像 Kylin-Desktop-V10-SP1-Release-2107-arm64.iso QEMU_EFI.fd(下载地址 http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd) 注:麒麟系统要求磁盘大小在50G以上. 参数说明: -m 4096 指定内存大小,单位MB -cpu cortex-a72 CPU 型号 -smp 8,cores=8,threads=1,sockets=1 1颗CPU,8核8线

    2024年01月21日
    浏览(112)
  • FT2000+ qemu kvm openEuer crash 分析 频繁设置CPU online及cgroup导致进程卡死、不调度故障

    https://hknaruto.blog.csdn.net/article/details/130498823 内核版本信息  突然就坚挺起来,长时间稳定运行 待续 十几分钟后,终端已卡死 ,两个终端均无响应,但是gnome还活着,图形界面还能动 重启虚拟机 kvm内,安装好crash分析环境 下载安装debuginfo包 http://debuginfo.centos.org/8/aarch64/Pack

    2024年02月02日
    浏览(45)
  • 27 KVM管理系统资源-管理虚拟CPU份额

    27 KVM管理系统资源-管理虚拟CPU份额 27.1 概述 虚拟化环境下,同一主机上的多个虚拟机竞争使用物理CPU。为了防止某些虚拟机占用过多的物理CPU资源,影响相同主机上其他虚拟机的性能,需要平衡虚拟机vCPU的调度,避免物理CPU的过度竞争。 CPU份额表示一个虚拟机竞争物理CP

    2024年02月06日
    浏览(40)
  • MySQL最全面的优化技巧

    如果面试官问你:你会从哪些维度进行 MySQL 性能优化?你会怎么回答? 所谓的性能优化,一般针对的是MySQL查询的优化。既然是优化查询,我们自然要先知道查询操作要经过哪些环节,然后思考可以在哪些环节进行优化。 查询操作需要经历的基本环节: SQL查询的环节 下面从

    2024年02月15日
    浏览(37)
  • Linux性能学习(3.2):IO_磁盘IO

    参考资料: 1. Linux I/O模型 2. 判断磁盘I/O是否饱和与%util指标的意义 3. 磁盘利用率和饱和度 4. 辩证看待 I/Ostat 在上一篇中,大致了解了文件系统的一些知识,了解了不同的文件系统以及VFS的概念,其实在存储介质上也是有这个情况,在嵌入式开发中,会根据不同的项目使用不

    2024年02月08日
    浏览(53)
  • 开源免费虚拟化KVM的部署及其虚拟机资源变更、快照、克隆等常见运维操作

    实践说明:基于RHEL9(AlmaLinux9.1)部署,同类系统(CentOS9,RockyLinux9等)适用,但适用场景是不限于此的。 文档说明:本文档旨在帮助快速应用KVM虚拟化技术,重在实践操作,提供了简要参考。 文档形成时期:2021-2023年 因系统或软件版本不同,构建部署可能略有差异,但本文未做细

    2024年02月02日
    浏览(56)
  • centos7查看磁盘io

    1.查看所使用到的命令为iostat,centos7没有自带iostat,需要安装一下 2.安装iostat命令 yum -y install sysstat 3.使用iostat命令 iostat   %user :表示用户空间进程使用 CPU 时间的百分比 %nice :表示用户空间进程以降低优先级的方式使用 CPU 时间的百分比 %system :表示内核进程使用 CPU 时间

    2024年02月02日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包