Debian

HP DL380 G7 + Smart Array P410i + sysbench -> RAID 10 性能不佳

  • October 9, 2015

我正在執行 IO 使用率低的系統:

  1. HP DL380G7(24GB 記憶體)
  2. 具有 512mb 電池支持的寫入記憶體的 Smart Array p410i
  3. RAID10 中 6 個 SAS 10k rpm 146gb 驅動器
  4. Debian Squeze linux, ext4 + LVM, hpacucli 已安裝

iostat(cciss/c0d1 = raid10 陣列,dm-7 = 60G lvm 分區用於測試):

設備:rrqm/s wrqm/sr/sw/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
cciss/c0d0 0,00 101,20 0,00 6,20 0,00 0,42 138,58 0,00 0,00 0,00 0,00
cciss/c0d1 0,00 395,20 3,20 130,20 0,18 2,05 34,29 0,04 0,26 0,16 2,08
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-2 0,00 0,00 3,20 391,00 0,18 1,53 8,87 0,04 0,11 0,05 1,84
dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-4 0,00 0,00 0,00 106,80 0,00 0,42 8,00 0,00 0,00 0,00 0,00
dm-5 0,00 0,00 0,00 0,60 0,00 0,00 8,00 0,00 0,00 0,00 0,00
dm-6 0,00 0,00 0,00 2,80 0,00 0,01 8,00 0,00 0,00 0,00 0,00
dm-1 0,00 0,00 0,00 132,00 0,00 0,52 8,00 0,00 0,02 0,01 0,16
dm-7 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

hpacucli “ctrl 全部顯示配置”

插槽 0(嵌入式)中的智能陣列 P410i(序列號:5001438011FF14E0)

陣列 A(SAS,未使用空間:0 MB)


邏輯驅動器 1(136.7 GB,RAID 1,正常)

物理驅動器 1I:1:1(埠 1I:box 1:bay 1, SAS, 146 GB, OK)
物理驅動器 1I:1:2(埠 1I:box 1:bay 2, SAS, 146 GB, OK)

陣列 B(SAS,未使用空間:0 MB)


邏輯驅動器 2(410.1 GB,RAID 1+0,正常)

物理驅動器 1I:1:3(埠 1I:box 1:bay 3, SAS, 146 GB, OK)
物理驅動器 1I:1:4(埠 1I:box 1:bay 4, SAS, 146 GB, OK)
物理驅動器 2I:1:5(埠 2I:box 1:bay 5, SAS, 146 GB, OK)
物理驅動器 2I:1:6(埠 2I:box 1:bay 6, SAS, 146 GB, OK)
物理驅動器 2I:1:7(埠 2I:box 1:bay 7, SAS, 146 GB, OK)
物理驅動器 2I:1:8(埠 2I:box 1:bay 8, SAS, 146 GB, OK)

SEP(供應商 ID PMCSIERA,型號 SRC 8x6G)250(WWID:5001438011FF14EF)

hpacucli “ctrl 全部顯示狀態”

插槽 0 中的 Smart Array P410i(嵌入式)
控制器狀態:正常
記憶體狀態:OK
電池/電容狀態:OK

Sysbench 命令

sysbench --init-rng=on --test=fileio --num-threads=16 --file-num=128 --file-block-size=4K --file-total-size=54G --file-test -mode=rndrd --file-fsync-freq=0 --file-fsync-end=off 執行 --max-requests=30000

Sysbench 結果

sysbench 0.4.12:多執行緒系統評估基準

使用以下選項執行測試:
執行緒數:16
從定時器初始化隨機數生成器。


額外文件打開標誌:0
128 個文件,每個 432Mb
54Gb 總文件大小
塊大小 4Kb
隨機IO的隨機請求數:30000
組合隨機 IO 測試的讀/寫比率:1.50
使用同步 I/O 模式
做隨機閱讀測試
話題開始了!
完畢。

執行的操作:30000 讀取,0 寫入,0 其他 = 30000 總計
讀取 117.19Mb 寫入 0b 總傳輸量 117.19Mb (935.71Kb/sec)
233.93 請求/秒執行

測試執行總結:
總時間:128.2455s
事件總數:30000
事件執行所花費的總時間:2051.5525
每個請求的統計資訊:
最小:0.00ms
平均:68.39 毫秒
最大值:2010.15ms
大約 95%:660.40ms

執行緒公平性:
事件(平均/標準差):1875.0000/111.75
執行時間(平均/標準差):128.2220/0.02

測試期間的iostat

平均 CPU:%user %nice %system %iowait %steal %idle
0,00 0,01 0,10 31,03 0,00 68,86

設備:rrqm/s wrqm/sr/sw/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
cciss/c0d0 0,00 0,10 0,00 0,60 0,00 0,00 9,33 0,00 0,00 0,00 0,00
cciss/c0d1 0,00 46,30 208,50 1,30 0,82 0,10 8,99 29,03 119,75 4,77 100,00
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-2 0,00 0,00 0,00 51,60 0,00 0,20 8,00 49,72 877,26 19,38 100,00
dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-4 0,00 0,00 0,00 0,70 0,00 0,00 8,00 0,00 0,00 0,00 0,00
dm-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-6 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00
dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00
dm-7 0,00 0,00 208,50 0,00 0,82 0,00 8,04 25,00 75,29 4,80 100,00
dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

邦妮++ v1.96

命令:/usr/sbin/bonnie++ -c 16 -n 0

一次寫入一個字節...完成
聰明地寫作……完成
重寫...完成
一次讀取一個字節...完成
智能閱讀……完成
開始他們...完成...完成...完成...完成...完成...
版本 1.96 ------順序輸出------ --順序輸入- --隨機-
並發 16 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
機器大小 K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
搜尋引擎優化數據庫 48304M 819 99 188274 17 98395 8 2652 78 201280 8 265.2 1
延遲 14899us 726ms 15194ms 100ms 122ms 665ms

1.96,1.96,seo-db,16,1337541936,48304M,,819,99,188274,17,98395,8,2652,78,201280,8,265.2,1,,,,,,,,,,,,,, ,,,,14899us,726ms,15194ms,100ms,122ms,665ms,,,,,,

問題

因此,sysbench 顯示每秒 234 次隨機讀取。

我希望它至少是 400。

瓶頸可能是什麼?路威酩?

另一個帶有 mdadm raid1 + 2x 7200rpm 驅動器的系統顯示每秒超過 200 次隨機讀取…

謝謝你的幫助!

根據您的硬體規格,您的系統肯定性能不佳。sysbench我在幾台執行 CentOS 5/6 的空閒 HP ProLiant DL380 G6/G7 伺服器上載入了該實用程序,以檢查它們的性能。這些是普通的固定分區,而不是 LVM。(我通常不使用 LVM,因為 HP Smart Array 控制器提供了靈活性)

DL380 G6 在 Smart Array P410 控制器上有一個 6 磁碟 RAID 1+0 陣列,並帶有 512MB 電池備份記憶體。DL380 G7 具有 2 盤企業級 SLC SSD 陣列。文件系統是XFS。我使用了與您相同的 sysbench 命令行:

sysbench --init-rng=on --test=fileio --num-threads=16 --file-num=128 --file-block-size=4K --file-total-size=54G --file-test-mode=rndrd --file-fsync-freq=0 --file-fsync-end=off --max-requests=30000 run

我的結果是6 個磁碟上 每秒 1595 次隨機讀取。
在 SSD 上,結果是39047 random reads-per-second。完整結果在這篇文章的末尾……

  • 至於您的設置,我首先想到的是您的測試分區的大小。你幾乎用 54GB 的測試文件填滿了 60GB 的分區。我不確定 ext4 在 90+% 的性能是否存在問題,但這是您修改和重新測試最快的方法。(或使用較小的一組測試數據)
  • 即使使用 LVM,此控制器/磁碟設置也有一些可用的調整選項。檢查預讀並將I/O 調度程序設置從預設的cfq更改為deadlinenoop很有幫助。請在以下位置查看問題和答案:Linux - 實際硬體 RAID 控制器調整(scsi 和 cciss)
  • 您的 RAID 控制器記憶體比率是多少?我通常使用 75%/25% 的寫入/讀取平衡。這應該是一個快速測試。6 磁碟陣列在 18 秒內完成。你的花了 2 多分鐘。
  • 您可以在有問題的分區/陣列上執行bonnie++iozone測試嗎?查看系統上是否存在任何其他瓶頸會很有幫助。我不熟悉sysbench,但我認為這些其他工具可以讓您更好地了解系統的功能。
  • 文件系統掛載選項可能會產生很小的影響,但我認為問題可能比這更深……

hpacucli 輸出…

Smart Array P410i in Slot 0 (Embedded)    (sn: 50123456789ABCDE)

  array A (SAS, Unused Space: 0 MB)

     logicaldrive 1 (838.1 GB, RAID 1+0, OK)

     physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
     physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
     physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
     physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK)
     physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 300 GB, OK)
     physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 300 GB, OK)

  SEP (Vendor ID PMCSIERA, Model  SRC 8x6G) 250 (WWID: 50123456789ABCED)

sysbench DL380 G6 6盤結果…

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 16
Initializing random number generator from timer.

Extra file open flags: 0
128 files, 432Mb each
54Gb total file size
Block size 4Kb
Number of random requests for random IO: 30000
Read/Write ratio for combined random IO test: 1.50
Using synchronous I/O mode
Doing random read test
Threads started!
Done.

Operations performed:  30001 Read, 0 Write, 0 Other = 30001 Total
Read 117.19Mb  Written 0b  Total transferred 117.19Mb  (6.2292Mb/sec)
1594.67 Requests/sec executed

Test execution summary:
   total time:                          18.8133s
   total number of events:              30001
   total time taken by event execution: 300.7545
   per-request statistics:
        min:                                  0.00ms
        avg:                                 10.02ms
        max:                                277.41ms
        approx.  95 percentile:              25.58ms

Threads fairness:
   events (avg/stddev):           1875.0625/41.46
   execution time (avg/stddev):   18.7972/0.01

sysbench DL380 G7 SSD 結果…

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 16
Initializing random number generator from timer.


Extra file open flags: 0
128 files, 432Mb each
54Gb total file size
Block size 4Kb
Number of random requests for random IO: 30000
Read/Write ratio for combined random IO test: 1.50
Using synchronous I/O mode
Doing random read test
Threads started!
Done.

Operations performed:  30038 Read, 0 Write, 0 Other = 30038 Total
Read 117.34Mb  Written 0b  Total transferred 117.34Mb  (152.53Mb/sec)
39046.89 Requests/sec executed

Test execution summary:
   total time:                          0.7693s
   total number of events:              30038
   total time taken by event execution: 12.2631
   per-request statistics:
        min:                                  0.00ms
        avg:                                  0.41ms
        max:                                  1.89ms
        approx.  95 percentile:               0.57ms

Threads fairness:
   events (avg/stddev):           1877.3750/15.59
   execution time (avg/stddev):   0.7664/0.00

引用自:https://serverfault.com/questions/390677