Debian
HP DL380 G7 + Smart Array P410i + sysbench -> RAID 10 性能不佳
我正在執行 IO 使用率低的系統:
- HP DL380G7(24GB 記憶體)
- 具有 512mb 電池支持的寫入記憶體的 Smart Array p410i
- RAID10 中 6 個 SAS 10k rpm 146gb 驅動器
- 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更改為deadline或noop很有幫助。請在以下位置查看問題和答案: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