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

我正在一个小型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 = metadata.这似乎略微改善了一些事情,但性能仍然比主机系统低几个数量级.

这个特定的屏幕截图是在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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"多谢关注realboard,请访问慧至科技官方网站www.hugacy.com" 感谢大家关注realboard,再三感谢,尤其是众多发email过来询问的网友。 鉴于有网友怀疑realboad速度qemu,事实胜于雄辩,提供测试方法如下: 测试方法: 分别运行两个batch程序,用秒表或PC时钟计时(大概1分钟左右结束) 计时方法: 程序启动开始计时; 出现UI画面结束计时. 测试代码(rt-thread 0.4.0 relese): 如果对测试代码有疑问,请联系rt-thread咨询 bsp/mini2440/sdcard.c rt_uint8_t sd_init(void) { //-- SD controller & card initialize int i; sd_delay(1000000); //此处增加一行对ARM仿真性能进行压力测试 /* Important notice for MMC test condition */ /* Cmd & Data lines must be enabled by pull up resister */ SDIPRE = PCLK/(INICLK)-1; SDICON = (0<<4) | 1; // Type A, clk enable SDIFSTA = SDIFSTA | (1<<16); SDIBSIZE = 0x200; /* 512byte per one block */ SDIDTIMER=0x7fffff; /* timeout count */ /* Wait 74SDCLK for MMC card */ for(i=0; i<0x1000; i++); sd_cmd0(); 参考配置: Pentium(R) Dual-Core CPU E5400 @ 2.70GHz 2.69GHz, 3.46GB of RAM 参考结果: qemu为47秒, realboard为28秒 realboard之所有没有达到23秒以内,是因为Timer处理和外设IO还有专门优化。 早期曾经对realboard核心指令集模拟器做过多媒体解码测试,综合性能qemu的2倍。 详情请参考我的CSDN blog realboard -- 继续挑战ARM高性能软件仿真极限 <** 任何个人或团体学习者,教育培训机构,自由项目开发组织,在非商业赢利前提下,均可以无偿体验和使用realboard,商业使用请联系作者获得授权, email : lxzhg@hotmail.com **> 测试包中所含其它资源为自由软件开发组织所有,请参考各自许可协议。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值