我正在一个小型Openstack集群上使用libvirt运行一些图像.这些机器上的存储性能非常差:我的监控工具显示100%的利用率(通常在写入时,但有时在读取时),吞吐量低至~50KB / s – 最高约为1MB / s.

这是nmon工具的屏幕截图,显示了随着时间推移的cpu性能和当前的存储吞吐量.他们展示的是典型的:

通过使用打包工具使用qemu构建Debian和Ubuntu映像,我在其他两台机器上复制了相同的性能问题.这是我的qemu命令行:

/usr/bin/qemu-system-x86_64 -netdev user,id=user.0,hostfwd=tcp::3213-:22 -device virtio-net,netdev=user.0 -cdrom /home/$user/packer_cache/23e6874116128e16e11cfad1c369c54be97c20023e59b9b9d39d312233e09cd6.iso -m 512M -display sdl -machine type=pc,accel=kvm -vnc 0.0.0.0:47 -name packer-openstack -drive file=output-openstack/packer-openstack.qcow2,if=virtio,cache=none -boot once=d

如您所见,我正在使用virtio驱动程序,而cache = none.

我甚至修补了packer在qemu-img create的参数中使用-o preallocation = @R_502_338@data.这似乎略微改善了一些事情,但性能仍然比主机系统低几个数量级.

这个特定的屏幕截图是在Ubuntu安装的“安装基本系统”阶段拍摄的,但它与或多或少的任何存储使用一致.

它是在我的工作站上拍摄的,这是一台带有SSD的Macbrook Pro;具有相同问题的Openstack机器正在运行RAID10集群,我在主机系统上以大约1200MB / s的速度进行基准测试.

显然,我不认为qemu下的存储性能与主机系统的存储性能相匹配 – 但它的速度有多慢. Openstack集群上的主机虚拟机需要几秒钟来执行操作,就像postgres中的CREATE DATABASE语句一样简单.

目前我留下的唯一线索就是这里的截图:

这里nmon显示/ dev / sda具有完全利用率,但/ dev / sda7–实际拥有qcow2映像的分区 – 只有1%的使用率.后一个统计数据与我实际期望的磁盘性能相匹配.

值得注意的是,这里的饱和度并不仅仅是我的监控工具的一个工件:在发生这种情况时,主机上的所有操作都非常慢.

如何找出实际发生的情况?

我应该看看在主机上使用电梯= noop和客人调整调度程序等内容吗?

编辑:这是我工作站上uname -a的输出:

Linux $hostname 3.18.6-1-ARCH #1 SMP PREEMPT Sat Feb 7 08:44:05 CET 2015 x86_64 GNU/Linux

在Openstack机器上:

Linux $hostname 3.13.0-40-generic #69-Ubuntu SMP Thu Nov 13 17:53:56 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

qemu运行linux内核很慢,linux – qcow2图像的qemu存储性能非常慢相关推荐

  1. Linux内核很吊之 module_init解析 (下)【转】

    转自:https://blog.csdn.net/richard_liujh/article/details/46758073 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...

  2. Linux内核很吊之 module_init解析 (下)

    Linux内核很吊之 module_init解析 (下) 转载 2017年01月23日 13:58:21 标签: 95 编辑 删除 转自: http://blog.csdn.net/richard_l ...

  3. 武汉linux内核好找吗,Linux内核入门

    Linux内核入门 收藏 如何获取Linux内核源代码 下载Linux内核当然要去http://www.kernel.org/了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补 ...

  4. 编译Linux内核没有zImage,Linux 编译系统的简单介绍与内核编译安装

    这里不只是讲怎样编译.安装Linux内核的,更主要的是介绍内核的编译系统和各个重要的文件.最后还利用学到的编译.安装Linux内核去修改Linux的01调度变成随机调度.如果你只是需要编译.安装内核的 ...

  5. 手机linux内核版本了解,Linux内核版本介绍与查询

    Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...

  6. 2021-10-16python笔记(Linux内核简介与Linux基础命令)

    前面的博文已经教会了大家如何下载和安装Linux操作系统,并且使用Xshell软件远程连接Linux服务器,这节课我们要进入真正的Linux基础学习中. 知识点概括: 1.Linux的心脏-Linux ...

  7. linux内核能否扩展,Linux内核用到的GCC扩展

    GNC CC是一个功能非常强大的跨平台C编译器,它对C 语言提供了很多扩展,这些扩展对优化.目标代码布局.更安全的检查等方面提供了很强的支持.本文把支持GNU 扩展的C 语言称为GNU C. Linu ...

  8. 简述arm linux内核启动流程,Linux内核启动过程和Bootloader(总述)

    1.Linux内核启动过程概述 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux 内核,文件系统,应用程序.其中 Bootloader是系统启 ...

  9. 【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 )

    文章目录 一.安装内核模块 二.安装内核 三.重启系统 四.查看当前内核版本 一.安装内核模块 确保 Linux 内核编译完成 , 没有任何报错之后 ; 参考 [Linux 内核]编译 Linux 内 ...

最新文章

  1. C - A problem of sorting HDU - 5427 sort(cmp)
  2. 通过Spark进行ALS离线和Stream实时推荐
  3. 5天5000万访问的个人网站是如何诞生的?
  4. .NET精品文章系列(二)
  5. js实现语音播报功能
  6. bat脚本如何自动输入y_在Mac如何写一个相对自动的翻译脚本
  7. eclipse 64位_如何安装调试 Java开发工具Eclipse和JDK环境
  8. 电容的q值计算公式_在设计电路中电容容量大小、耐压等级选取详解 (转)
  9. 百面机器学习第一章——特征工程(基本是百面机器学习书的内容)
  10. 微信一年“扫码”约占我国GDP 9%,带动近三千万个就业机会
  11. 随手一写,简单的四则运算练习
  12. Atitit  atiMail atiDns新特性 v2  q39
  13. c盘存放文件夹的功能
  14. “出色”IT项目经理的5大关键能力
  15. IPX/SPX 协议
  16. VMware Error | IP地址经常变更
  17. CCProxy网络共享代理服务端配置使用
  18. PHP之依赖注入容器pimple
  19. 【android】Android Studio创建模拟手机虚拟机
  20. Java初学者一定要注意的问题,这些错误你犯过哪些?永远不要停止学习。

热门文章

  1. php和python的选择排序算法,图文讲解选择排序算法的原理及在Python中的实现
  2. C语言对strtok(),与strdup()介绍
  3. CTF杂项之“维吉尼亚密码”
  4. java 脚本引擎性能_Java SE 6 入门之脚本引擎加大程序性能
  5. Python基础教程:列表推导式对比For循环执行效率
  6. Python字典的setdefault() 和get()方法比较
  7. Python基础教程:hasattr() getattr() setattr() 使用方法详解
  8. python四种数值交换方法
  9. pycharm怎么修改语言为中文?(不用汉化包)
  10. 网关是个啥?为什么电脑不设置网关就没法上网?笔记本为啥不用设置网关?