Ubuntu
在 Ubuntu 14.04 機器上,軟體 RAID 10 並不比軟體 RAID 5 快,為什麼?
我們正在使用 4 x 240 GB SSD 磁碟的新數據庫伺服器上進行一些測試。從我讀到的內容來看,RAID 10 應該比 RAID 5 更快,具有相同的“一個磁碟失去正常”冗餘。
然而,當使用 bonnie++ 進行測試時,似乎 RAID 10 並不比 RAID 5 快。知道為什麼嗎?
- 4 個 240GB SSD 磁碟,軟體 RAID,Ubuntu 14.04
- 英特爾® 至強® E5-1650 v2 六核 Ivy Bridge-E,包括。超執行緒技術 128 GB ECC RAM
- http://www.hetzner.de/en/hosting/produkte_rootserver/px120ssd
RAID5(所有 4 個磁碟):
# cat /proc/mdstat md2 : active raid5 sdd3[4] sdc3[2] sda3[0] sdb3[1] 688730112 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU] # df -h Filesystem Size Used Avail Use% Mounted on /dev/md2 647G 1.6G 613G 1% / # bonnie++ -d /tmp -u root Version 1.97 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP db1a 252G 1113 99 474860 26 327393 16 5943 99 1192788 23 +++++ +++ Sequential write: 0.474 G/s Sequential rewrite: 0.327 G/s Sequential read: 1.192 G/s
RAID10:
# cat /proc/mdstat md2 : active raid10 sdd3[3] sdc3[2] sdb3[1] sda3[0] 459153408 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] # df -h Filesystem Size Used Avail Use% Mounted on /dev/md2 431G 1.6G 408G 1% / # bonnie++ -d /tmp -u root Version 1.97 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP db1a 252G 1221 99 492972 27 323392 15 5688 100 1178194 23 +++++ +++ Sequential write: 0.492 G/s Sequential rewrite: 0.323 G/s Sequential read: 1.178 G/s
更新
我使用 iozone 執行了 RAID 10 測試,以查看多執行緒基準測試是否會在假設 bonnie++ 報告的 99%-100% CPU 可能表明存在瓶頸的情況下表現更好:
# iozone -R -i 0 -i 1 -l 12 -u 12 -r 8k -s 22G (12 threads, 8k block size, total file size of 264G) " Initial write " 538817.21 0.538 G/s " Rewrite " 511450.04 0.511 G/s " Read " 1087437.45 1.087 G/s " Re-read " 1201127.73 1.201 G/s " Random read " 576435.70 0.576 G/s " Random write " 400612.46 0.400 G/s
結果略好於bonnie++,但也不多。
RAID 5 的 iozone 結果:
" Initial write " 516469.10 0.516 G/s " Rewrite " 489970.21 0.489 G/s " Read " 1116074.84 1.116 G/s " Re-read " 1116666.97 1.116 G/s " Random read " 611738.43 0.611 G/s " Random write " 199486.44 0.199 G/s
因此,正如答案中所解釋的那樣,RAID 10 隨機寫入性能是 RAID 5 的兩倍,但所有其他統計數據都相似或稍好一些。
從我讀到的內容來看,RAID 10 應該比 RAID 5 更快,具有相同的“一個磁碟失去正常”冗餘。
我不同意。
讓我們看看讀取——在這裡,沒有理由應該有任何區別。兩者都可以讓您從所有四個驅動器讀取數據並使用它們的全部頻寬。使用 RAID 5,除非需要,否則不會讀取奇偶校驗,因此沒有區別。
現在,讓我們看看寫入。對於 RAID 10,頻寬減半,因為每次寫入必須執行兩次。使用 RAID 5,它並沒有那麼糟糕。我們必須寫出奇偶校驗,但只有 1/4 的數據是奇偶校驗(我們每寫入 3 個字節的數據,我們必須寫入一個字節的奇偶校驗)。所以 RAID 10 將頻寬減半,RAID 5 有 33% 的損失。所以 RAID 10 在這裡稍微差一點。
為什麼 RAID 10 應該更好?(假設沒有設備故障。)