SSD+MDRAID+LVM+KVM 导致性能低于预期

SSD+MDRAID+LVM+KVM 导致性能低于预期

我们使用 kvm 进行虚拟化,磁盘映像存储为逻辑卷。逻辑卷存储在由 Intel DCS3500 SSD 组成的一组软件 RAID1 (mdadm) 阵列上(每个阵列都是卷组中的一个物理卷)。

如果我在该卷组内创建一个逻辑卷并使用 fio 确定 IOPS,则随机写入 4KB 块时我会获得大约 40K IOPS。很好。iostat 显示两个 SSD 的利用率都达到 100% 左右。如果我创建一个使用相同逻辑卷进行存储的虚拟机并运行相同的 fio 命令,我最初会获得 20K IOPS(很好),但 30 秒左右后会下降到 7-8K。奇怪的是,iostat 现在显示一个 SSD 的使用率为 100%,而另一个仅为 45%。

以下是随时间变化的图表(由虚拟机管理程序上的 iostat -x 2 完成) 利用率 西塞克 队列

如您所见,起初瓶颈似乎是 sdn,但随后 sdm 开始做一些拖累阵列的事情,现在 sdn 只有一半繁忙。

但是,无论出于什么原因,这种情况只有在 VM 内部运行测试时才会发生。如果我从虚拟机管理程序运行它,一切都正常,性能至少 2 分钟内不会下降。虚拟磁盘驱动程序、ide 或 virtio 的选择不会影响结果。

有人遇到过这样的问题吗?根本原因是什么?如何提高性能?

编辑:根据要求提供更多信息(无论出于什么原因,我一开始并没有想到这一点)

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

我已将 uid 和主机名清空。

相关内容