SSD 寫入 IOPS 較低(~100)

SSD 寫入 IOPS 較低(~100)

我的伺服器中使用 SSD 時遇到非常低的 IOPS。我在運行 mysql 資料庫伺服器時注意到了這一點,當 InnoDB 資料庫有很多(大約每秒 100 次)更新時,它的效能非常糟糕。

以下是伺服器規格:

SSD:型號=三星 SSD 850 EVO 120GB,FwRev=EMT01B6Q

伺服器:HP proliant DL320e Gen8

CPU:Intel(R) Xeon(R) CPU E3-1270 v3 @ 3.50GHz

作業系統:Ubuntu 14.04.1 LTS

核心:Linux h119 3.13.0-44-generic #73-Ubuntu SMP 12 月 16 日星期二 00:22:43 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

當檢查 SSD 時有一些負載時,我得到這些結果iostat-kx 1 20

root@h119:~# iostat -kx 1 20
Linux 3.13.0-44-generic (h119)  02/19/2015      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.14    0.00    0.08    1.06    0.00   98.72

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               5.14    14.75    0.80   17.68   378.51   258.59    68.94     0.22   12.03    1.76   12.50   7.90  14.60
sdb               0.00    19.89    0.00   18.44     0.05   636.16    68.99     0.26   14.32    0.43   14.33   8.22  15.17
md2               0.00     0.00    0.04   31.40     0.97   257.88    16.46     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     7.93     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.00    0.00    0.63    1.00    0.00   97.37

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    21.00    0.00   18.00     0.00   346.00    38.44     0.19   10.44    0.00   10.44   7.78  14.00
sdb               0.00    21.00    0.00   18.00     0.00   346.00    38.44     0.18   10.00    0.00   10.00   7.33  13.20
md2               0.00     0.00    0.00   36.00     0.00   356.00    19.78     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.25    0.00    0.75    1.50    0.00   96.50

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    19.00    0.00   19.00     0.00   218.00    22.95     0.20    9.47    0.00    9.47   9.89  18.80
sdb               0.00    19.00    0.00   19.00     0.00   218.00    22.95     0.20    9.68    0.00    9.68  10.11  19.20
md2               0.00     0.00    0.00   37.00     0.00   236.00    12.76     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.75    0.00    1.12    1.37    0.00   95.76

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    19.80    0.00   16.83     0.00   291.09    34.59     0.19    9.88    0.00    9.88   9.18  15.45
sdb               0.00    19.80    0.00   16.83     0.00   291.09    34.59     0.19    9.88    0.00    9.88   9.18  15.45
md2               0.00     0.00    0.00   35.64     0.00   336.63    18.89     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.00    0.00    0.75    1.00    0.00   97.25

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    18.00    0.00   22.00     0.00   310.00    28.18     0.16    8.91    0.00    8.91   6.36  14.00
sdb               0.00    18.00    0.00   22.00     0.00   310.00    28.18     0.16    9.09    0.00    9.09   6.55  14.40
md2               0.00     0.00    0.00   32.00     0.00   228.00    14.25     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.75    0.00    0.75    1.00    0.00   97.50

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    10.00    0.00   13.00     0.00   142.00    21.85     0.13    9.85    0.00    9.85   9.85  12.80
sdb               0.00    10.00    0.00   13.00     0.00   142.00    21.85     0.12    9.54    0.00    9.54   9.54  12.40
md2               0.00     0.00    0.00   19.00     0.00   140.00    14.74     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.26    0.00    0.88    1.26    0.00   96.61

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    34.00    0.00   12.00     0.00   333.00    55.50     0.12   10.00    0.00   10.00  10.33  12.40
sdb               0.00    34.00    0.00   12.00     0.00   333.00    55.50     0.12   10.00    0.00   10.00  10.33  12.40
md2               0.00     0.00    0.00   45.00     0.00   352.00    15.64     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.37    0.00    0.87    1.50    0.00   96.26

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    17.00    0.00   28.00     0.00   713.00    50.93     0.28   10.00    0.00   10.00   5.86  16.40
sdb               0.00    17.00    0.00   28.00     0.00   713.00    50.93     0.27    9.86    0.00    9.86   5.71  16.00
md2               0.00     0.00    0.00   43.00     0.00   692.00    32.19     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.50    0.00    0.75    1.38    0.00   96.37

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    35.00    0.00   20.00     0.00   361.00    36.10     0.18    9.20    0.00    9.20   8.00  16.00
sdb               0.00    35.00    0.00   20.00     0.00   361.00    36.10     0.18    9.20    0.00    9.20   8.00  16.00
md2               0.00     0.00    0.00   53.00     0.00   360.00    13.58     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.25    0.00    1.12    1.12    0.00   96.50

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    20.00    0.00   11.00     0.00   193.00    35.09     0.11    9.82    0.00    9.82   9.82  10.80
sdb               0.00    20.00    0.00   11.00     0.00   193.00    35.09     0.11   10.18    0.00   10.18  10.18  11.20
md2               0.00     0.00    0.00   29.00     0.00   192.00    13.24     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.00    0.00    0.50    0.62    0.00   97.88

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    12.00    0.00    9.00     0.00   137.00    30.44     0.09    9.78    0.00    9.78   8.44   7.60
sdb               0.00    12.00    0.00    9.00     0.00   137.00    30.44     0.09   10.22    0.00   10.22   8.89   8.00
md2               0.00     0.00    0.00   19.00     0.00   136.00    14.32     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.13    0.00    0.63    0.63    0.00   97.62

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    15.00    0.00    8.00     0.00   181.00    45.25     0.08   10.00    0.00   10.00  10.00   8.00
sdb               0.00    15.00    0.00    8.00     0.00   181.00    45.25     0.07    9.00    0.00    9.00   9.00   7.20
md2               0.00     0.00    0.00   25.00     0.00   244.00    19.52     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.88    0.00    0.63    0.88    0.00   97.60

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    28.00    0.00   15.00     0.00   301.00    40.13     0.14    9.33    0.00    9.33   6.93  10.40
sdb               0.00    28.00    0.00   15.00     0.00   301.00    40.13     0.14    9.33    0.00    9.33   6.93  10.40
md2               0.00     0.00    0.00   38.00     0.00   236.00    12.42     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.75    0.00    1.25    0.50    0.00   97.50

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    15.00    0.00    7.00     0.00   177.00    50.57     0.08    9.71    0.00    9.71  10.86   7.60
sdb               0.00    15.00    0.00    7.00     0.00   177.00    50.57     0.07    9.14    0.00    9.14  10.29   7.20
md2               0.00     0.00    0.00   22.00     0.00   188.00    17.09     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.76    0.00    0.38    1.13    0.00   97.73

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    17.00    0.00   17.00     0.00   205.00    24.12     0.16    9.65    0.00    9.65   7.06  12.00
sdb               0.00    17.00    0.00   17.00     0.00   205.00    24.12     0.16    9.65    0.00    9.65   7.06  12.00
md2               0.00     0.00    0.00   33.00     0.00   196.00    11.88     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.38    0.00    0.63    0.88    0.00   97.11

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    19.00    0.00   11.00     0.00   245.00    44.55     0.10    9.45    0.00    9.45   9.45  10.40
sdb               0.00    19.00    0.00   11.00     0.00   245.00    44.55     0.10    9.45    0.00    9.45   9.45  10.40
md2               0.00     0.00    0.00   28.00     0.00   244.00    17.43     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.76    0.00    0.50    1.39    0.00   97.35

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    28.00    0.00   20.00     0.00   305.00    30.50     0.19    9.40    0.00    9.40   8.60  17.20
sdb               0.00    28.00    0.00   20.00     0.00   305.00    30.50     0.19    9.40    0.00    9.40   8.60  17.20
md2               0.00     0.00    0.00   47.00     0.00   304.00    12.94     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.01    0.00    0.63    1.13    0.00   97.23

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    28.00    0.00   16.00     0.00   357.00    44.62     0.15    9.75    0.00    9.75   8.50  13.60
sdb               0.00    28.00    0.00   16.00     0.00   357.00    44.62     0.15    9.50    0.00    9.50   8.25  13.20
md2               0.00     0.00    0.00   44.00     0.00   356.00    16.18     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.13    0.00    0.75    1.50    0.00   96.62

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    19.00    0.00   22.00     0.00   297.00    27.00     0.19    8.91    0.00    8.91   5.82  12.80
sdb               0.00    19.00    0.00   22.00     0.00   297.00    27.00     0.22   10.36    0.00   10.36   6.36  14.00
md2               0.00     0.00    0.00   40.00     0.00   296.00    14.80     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.13    0.00    0.75    1.13    0.00   96.99

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    23.00    0.00   18.00     0.00   313.00    34.78     0.19   10.22    0.00   10.22   7.78  14.00
sdb               0.00    23.00    0.00   18.00     0.00   313.00    34.78     0.19   10.22    0.00   10.22   7.78  14.00
md2               0.00     0.00    0.00   39.00     0.00   312.00    16.00     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

以下結果是fio --rw=寫入 --name=測試 --size=20M --direct=1

root@h119:~# fio --rw=write --name=test --size=20M --direct=1
test: (g=0): rw=write, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=1
fio-2.1.3
Starting 1 process
test: Laying out IO file(s) (1 file(s) / 20MB)
Jobs: 1 (f=1): [W] [100.0% done] [0KB/404KB/0KB /s] [0/101/0 iops] [eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=11288: Sat Feb 21 19:59:52 2015
  write: io=20480KB, bw=415022B/s, iops=101, runt= 50531msec
    clat (usec): min=9674, max=21523, avg=9867.58, stdev=615.15
     lat (usec): min=9675, max=21524, avg=9867.76, stdev=615.16
    clat percentiles (usec):
     |  1.00th=[ 9792],  5.00th=[ 9792], 10.00th=[ 9792], 20.00th=[ 9792],
     | 30.00th=[ 9792], 40.00th=[ 9792], 50.00th=[ 9792], 60.00th=[ 9792],
     | 70.00th=[ 9792], 80.00th=[ 9792], 90.00th=[ 9920], 95.00th=[10048],
     | 99.00th=[12480], 99.50th=[12864], 99.90th=[18304], 99.95th=[18560],
     | 99.99th=[21632]
    bw (KB  /s): min=  380, max=  411, per=100.00%, avg=405.33, stdev= 5.11
    lat (msec) : 10=90.66%, 20=9.32%, 50=0.02%
  cpu          : usr=0.03%, sys=0.19%, ctx=5138, majf=0, minf=26
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.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.0%, >=64=0.0%
     issued    : total=r=0/w=5120/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=20480KB, aggrb=405KB/s, minb=405KB/s, maxb=405KB/s, mint=50531msec, maxt=50531msec

Disk stats (read/write):
    md2: ios=0/5580, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=0/5379, aggrmerge=0/191, aggrticks=0/52640, aggrin_queue=52640, aggrutil=99.00%
  sda: ios=0/5379, merge=0/191, ticks=0/52508, in_queue=52508, util=98.63%
  sdb: ios=0/5379, merge=0/191, ticks=0/52772, in_queue=52772, util=99.00%

正如你所看到的,IOPS 為 101,而我只能寫入 404kB/秒。另外,工具運行時IOPS沒有太大波動,始終在101到103之間。

我也相信 fio 的結果,因為當我的資料庫達到每秒約 100 次更新/插入時,它會變慢。

使用相同的伺服器(硬體和軟體)且沒有 RAID,我得到完全相同的結果,因此這不可能是由於軟體 RAID 造成的:

root@h073:~# fio --rw=write --name=test --size=20M --direct=1
test: (g=0): rw=write, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=1
fio-2.1.3
Starting 1 process
Jobs: 1 (f=1): [W] [100.0% done] [0KB/408KB/0KB /s] [0/102/0 iops] [eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=15147: Sat Feb 21 20:52:14 2015
  write: io=20480KB, bw=418492B/s, iops=102, runt= 50112msec
    clat (usec): min=1504, max=17337, avg=9785.74, stdev=417.14
     lat (usec): min=1504, max=17337, avg=9785.93, stdev=417.13
    clat percentiles (usec):
     |  1.00th=[ 9792],  5.00th=[ 9792], 10.00th=[ 9792], 20.00th=[ 9792],
     | 30.00th=[ 9792], 40.00th=[ 9792], 50.00th=[ 9792], 60.00th=[ 9792],
     | 70.00th=[ 9792], 80.00th=[ 9792], 90.00th=[ 9792], 95.00th=[ 9792],
     | 99.00th=[12480], 99.50th=[12608], 99.90th=[13120], 99.95th=[15040],
     | 99.99th=[17280]
    bw (KB  /s): min=  400, max=  416, per=100.00%, avg=408.75, stdev= 2.69
    lat (msec) : 2=0.04%, 4=0.04%, 10=98.14%, 20=1.78%
  cpu          : usr=0.04%, sys=0.12%, ctx=5132, majf=0, minf=27
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.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.0%, >=64=0.0%
     issued    : total=r=0/w=5120/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=20480KB, aggrb=408KB/s, minb=408KB/s, maxb=408KB/s, mint=50112msec, maxt=50112msec

Disk stats (read/write):
  sda: ios=0/5132, merge=0/43, ticks=0/50048, in_queue=50048, util=99.52%

值得注意的是,在 101-103 IOPS 下,速度非常穩定,為 404kB/秒。

不過,複製檔案的速度非常快,滿足了我對 SSD 的期望:

root@h119:~# dd if=randomfile of=randomfile2
2097152+0 records in
2097152+0 records out
1073741824 bytes (1.1 GB) copied, 2.27684 s, 472 MB/s

所以看起來只有 4k 隨機寫入速度慢得要命。如果您需要更多信息,請告訴我,我會更新。預先感謝您的回答。

更新:對於非 HP 伺服器,該問題不再存在。所以這肯定與HP伺服器如何存取SSD有關。在其他硬體上,我得到以下結果,非常好:

root@ca286:~# fio --rw=write --name=test --size=40M --direct=1
test: (g=0): rw=write, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=1
fio-2.1.3
Starting 1 process
test: Laying out IO file(s) (1 file(s) / 40MB)

test: (groupid=0, jobs=1): err= 0: pid=1285: Wed Feb 25 20:47:25 2015
  write: io=40960KB, bw=130032KB/s, iops=32507, runt=   315msec
    clat (usec): min=24, max=1588, avg=30.34, stdev=15.59
     lat (usec): min=24, max=1589, avg=30.39, stdev=15.60
    clat percentiles (usec):
     |  1.00th=[   26],  5.00th=[   29], 10.00th=[   29], 20.00th=[   30],
     | 30.00th=[   30], 40.00th=[   30], 50.00th=[   30], 60.00th=[   30],
     | 70.00th=[   30], 80.00th=[   31], 90.00th=[   31], 95.00th=[   31],
     | 99.00th=[   33], 99.50th=[   54], 99.90th=[   56], 99.95th=[   56],
     | 99.99th=[  114]
    lat (usec) : 50=99.30%, 100=0.68%, 250=0.01%
    lat (msec) : 2=0.01%
  cpu          : usr=2.55%, sys=18.47%, ctx=10247, majf=0, minf=26
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.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.0%, >=64=0.0%
     issued    : total=r=0/w=10240/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=40960KB, aggrb=130031KB/s, minb=130031KB/s, maxb=130031KB/s, mint=315msec, maxt=315msec

Disk stats (read/write):
  sda: ios=0/4806, merge=0/0, ticks=0/120, in_queue=120, util=48.19%

答案1

我們在 Gen7 的 SSD 測試中也做了同樣的觀察,但我猜與 Gen8 的差異不是很大。

如果您將 SSD 直接連接到主機板,效能將符合您的預期(ProLiant 伺服器預設只有一個連接 DVD 光碟機的連接埠)。

如果您透過Raid控制器連接SSD,無論您是否配置RAID(Jbod)都會減慢速度,只要資料必須經過控制器,效能就很差。我們猜測這與控制器不為那麼快的驅動器構建有關。

如果您購買HP SSD 並將其放入此類伺服器中,您的效能會變得更好(我們猜測是因為控制器和磁碟之間的通訊更好),但遠未達到廣告宣傳的效能(約20%)。

因此,ProLiants Gen7/8 SAS 控制器根本不適合 SSD。如果 Gen9 仍然存在這個瓶頸,那就很有趣了,因為這樣你只能透過 SlimSATA 將一個磁碟連接到 Gen7/Gen8(並且只能透過將磁碟放入機箱而不是插槽中)

相關內容