我们使用kvm进行虚拟化,磁盘映像作为逻辑卷存储。 逻辑卷存储在由Intel DCS3500 SSD(每个arrays是卷组中的一个物理卷)组成的软件RAID1(mdadm)arrays中。
如果我在该卷组内创build一个逻辑卷并使用fio来确定IOPS,那么随机写入4KB块的IOPS将达到约40K。 大。 iostat显示两个固态硬盘利用率达到100%左右。 如果我创build了一个使用相同逻辑卷进行存储的虚拟机,并运行相同的fio命令,我最初可以获得20K IOPS(很好),但是在30秒左右后会降至7-8K。 奇怪的是,iostat现在显示了一个100%使用的SSD,而另一个只有45%。
以下是随时间变化的图表(由hypervisor上的iostat -x 2完成) 


正如你所看到的,起初瓶颈似乎是sdn,但是sdm开始做一些拖拉arrays的事情,现在sdn只是半忙。
但是,无论出于何种原因,只有当testing在虚拟机内部运行时才会发生。 如果我从虚拟机pipe理程序运行它,一切正常,性能至less不会下降2分钟。 虚拟磁盘驱动程序ide或virtio的select不会影响结果。
有没有人遇到过这样的问题? 什么是根本原因? 如何提高性能?
编辑:更多的信息按要求(无论什么原因,我没有想到它首先)
OS: CentOS 6.4 Kernel: 2.6.32-358.el6.x86_64
mdadm –detail / dev / md104
/dev/md104: Version : 1.2 Creation Time : Mon Feb 3 20:02:02 2014 Raid Level : raid1 Array Size : 468720320 (447.01 GiB 479.97 GB) Used Dev Size : 468720320 (447.01 GiB 479.97 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Feb 26 14:50:36 2014 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : xxx:104 (local to host xxx) UUID : aaaaaaaa:bbbbbbbb:cccccccc:dddddddd Events : 28 Number Major Minor RaidDevice State 0 8 192 0 active sync /dev/sdm 1 8 208 1 active sync /dev/sdn
我已经删除了用户名和主机名。