KVM guest虚拟机中的IO性能更高

时间:2015-02-07 09:38:05

标签: io qemu kvm

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

  • HDD:ATA SAMSUNG HD502HI
  • CPU:Intel(R)Core(TM)i3 CPU
  • 内存大小:8GB

我为来宾设置了6GB内存,4个虚拟cpu和一个带有原始格式,virtio接口,写入缓存模式和本机io模式的磁盘映像文件。

操作系统是主机和来宾的Ubuntu-14.04 64位(内核:3.13.0-45-通用)。

然后,我开始使用fio基准测试工具在主机和来宾上对磁盘io进行基准测试。您可以在下表中看到结果(在fio命令中,选项大小= 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      |

我还在主机和guest上做了一个简单的副本(文件大小= 564M),结果几乎相同。(主机中的时间:6.282s和来宾中的时间:6.352s)。

我运行了另一个基准测试,其中从Mysql数据库中读取了3,000,000条记录,并将其编入索引到Elasticsearch。结果是不合理的,因为工作中的工作运行得更快。(主持人时间:5m6.827s,访客时间:2m19.469s)。

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

1 个答案:

答案 0 :(得分:0)

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

  1. 如果您在KVM中使用写回缓存,您有时会在访客中看到比在主机上更好的I / O性能。此提升类似于您在硬件RAID控制器上安装电池支持的写入缓存所带来的I / O提升。写回缓存的缺点是在电源故障时存在磁盘损坏的风险。
  2. 基准测试依赖于精确的时钟。当您在访客中运行基准测试时,您会非常相信VM时钟的可靠性。在你的情况下,你会看到几分钟的时间。差异,这让我觉得这可能不是什么事情,但我提到它是因为在对虚拟机进行基准测试时需要注意的事项。