在ssd raid上真正低的iops(低于1000)

我在服务器上出现严重的性能问题,真正的低iops

服务器:

  • ProLiant DL360p Gen8
  • 与惠普智能arraysP420i控制器(固件v6)
  • 与4倍的三星840 – 512GB突袭1 + 0

这里有一个三星840的细节:

hpacucli ctrl slot=0 pd 2I:1:6 show detail physicaldrive 2I:1:6 Port: 2I Box: 1 Bay: 6 Status: OK Drive Type: Data Drive Interface Type: Solid State SATA Size: 512.1 GB Firmware Revision: DXM04B0Q Serial Number: S12SNEAD102607E Model: ATA Samsung SSD 840 SATA NCQ Capable: True SATA NCQ Enabled: True Current Temperature (C): 16 Maximum Temperature (C): 70 Usage remaining: 100.00% Power On Hours: 0 SSD Smart Trip Wearout: False PHY Count: 1 PHY Transfer Rate: 6.0Gbps Drive Authentication Status: OK Carrier Application Version: 11 Carrier Bootloader Version: 6 

这是基准结果

 sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75 test: (g=0): rw=randrw, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=64 fio-2.1.3 Starting 1 process test: Laying out IO file(s) (1 file(s) / 4096MB) Jobs: 1 (f=1): [m] [99.8% done] [7152KB/2400KB/0KB /s] [1788/600/0 iops] [eta 00m:02s] test: (groupid=0, jobs=1): err= 0: pid=36718: Thu Mar 5 18:15:12 2015 read : io=3071.7MB, bw=2536.5KB/s, iops=634, runt=1240097msec write: io=1024.4MB, bw=866133B/s, iops=211, runt=1240097msec cpu : usr=0.28%, sys=1.18%, ctx=401767, majf=0, minf=2347 IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0% issued : total=r=786347/w=262229/d=0, short=r=0/w=0/d=0 Run status group 0 (all jobs): READ: io=3071.7MB, aggrb=2536KB/s, minb=2536KB/s, maxb=2536KB/s, mint=1240097msec, maxt=1240097msec WRITE: io=1024.4MB, aggrb=845KB/s, minb=845KB/s, maxb=845KB/s, mint=1240097msec, maxt=1240097msec Disk stats (read/write): dm-1: ios=785968/267543, merge=0/0, ticks=50476776/28341176, in_queue=79704028, util=100.00%, aggrios=788659/265218, aggrmerge=1953/2589, aggrticks=50709304/27483028, aggrin_queue=78191444, aggrutil=100.00% sda: ios=788659/265218, merge=1953/2589, ticks=50709304/27483028, in_queue=78191444, util=100.00% 

在正常的硬盘上运行相同的工作台显示更多的iops比ssd

任何想法 ?

由于MLC SSD的工作原理,他们需要一个体积适中的本地DRAMcaching来吸收传入的写入,同时写入后备NAND。

但是,硬件RAID卡通常会禁用磁盘的caching,并完全依靠自己的(卡上)DRAMcaching。 虽然这不是传统HDD的问题,但如果内部DRAMcaching不能使用,则NAND芯片(以及构build在其上的SSD)的内在不覆盖性质会导致巨大的性能损失。

举一个例子:一个256 GB的Crucial M550,连续写入速度超过400 MB / s,在禁止内部caching的情况下降至5 MB /秒。 随机写入的损失同样严重。 这就是企业SSD(过去)使用SLC NAND的确切原因:与MLC甚至eMLC相比,它们的编程时间要低很多。

因此,将消费级SSD与品牌硬件RAID卡结合起来时,我总是有点紧张。 另一方面,Linux mdraid与任何一个类别的固态硬盘都非常匹配。

对于你的具体情况,你可以做一些testing,试图重新启用内部磁盘caching(DELL / LSI控制器给出这种可能性,我不知道惠普控制器)。 但是,请记住,在启用了磁盘写入caching的情况下,如果发生停电,您将面临数据丢失(除非磁盘具有断电保护function,但这在消费者空间中非常罕见)。