Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
KVM客户机具有更高的IO性能_Io_Qemu_Kvm - Fatal编程技术网

KVM客户机具有更高的IO性能

KVM客户机具有更高的IO性能,io,qemu,kvm,Io,Qemu,Kvm,我设置了一个带有KVM客户机的系统,以测试客户机性能与主机性能的比较。 系统硬件规格如下: 硬盘驱动器:ATA三星HD502HI CPU:Intel(R)Core(TM)i3 CPU 内存大小:8GB 我为客户机设置了6GB的ram、4个虚拟cpu和一个具有原始格式、virtio接口、writethrough缓存模式和本机io模式的磁盘映像文件 操作系统在主机和客户机上都是Ubuntu-14.04 64位(内核:3.13.0-45-generic) 然后,我开始使用fio基准测试工具对主机和

我设置了一个带有KVM客户机的系统,以测试客户机性能与主机性能的比较。 系统硬件规格如下:

  • 硬盘驱动器:ATA三星HD502HI
  • CPU:Intel(R)Core(TM)i3 CPU
  • 内存大小:8GB
我为客户机设置了6GB的ram、4个虚拟cpu和一个具有原始格式、virtio接口、writethrough缓存模式和本机io模式的磁盘映像文件

操作系统在主机和客户机上都是Ubuntu-14.04 64位(内核:3.13.0-45-generic)

然后,我开始使用fio基准测试工具对主机和来宾机上的磁盘io进行基准测试。您可以在下表中看到结果(在fio命令中,包括选项size=512m和invalidate=1):

带宽

|       |   Random Read |   Random write|Seqential Read |Seqential write|
| Host  |   465347B/s   |   1199.7MB/s  |   107878KB/s  |   1434.2MB/s  |
| Guest |   46389KB/s   |   989223KB/s  |   1418.3MB/s  |   1096.4MB/s  |
Iops

|       |   Random Read |   Random write|Seqential Read |Seqential write|
| Host  |   113         |   306960      |   26969       |   367148      |
| Guest |   11597       |   247305      |   363080      |   280668      |
我还在主机和来宾上做了一个简单的复制(文件大小=564M),结果几乎是一样的(主机中的时间:6.282s,来宾中的时间:6.352s)

我运行了另一个基准测试,从Mysql数据库读取300万条记录,并将其编入Elasticsearch索引。结果是不合理的,因为任务在来宾中运行得更快(主机时间:5m6.827秒,来宾时间:2m19.469秒)

我真的很困惑!
为什么来宾IO性能在某些测试中更好?

我们想到了几个可能的原因:

  • 如果在KVM中使用写回缓存,您有时会看到来宾系统中的I/O性能优于主机上的I/O性能。此增强类似于在硬件RAID控制器上安装电池备份写缓存时看到的I/O增强。写回缓存的缺点是,电源故障可能会导致磁盘损坏
  • 基准测试依赖于精确的时钟。当您在客户机中运行基准测试时,您对虚拟机时钟的可靠性充满信心。在您的例子中,您看到了几分钟的差异,这使我认为这可能不是正在发生的事情,但我提到它是因为在对VM进行基准测试时需要注意这一点