SQL Server 在RAID 10 vs. RAID 5性能


RAID 10 vs. RAID 5 Performance 上給出了使用SQLIO.EXE 產生8KB 隨機讀和寫的一個性能數據圖,相差接近一倍的性能差距。

raid10vSraid5

磁盤訪問時間=磁盤尋道時間+延遲

延遲時間=1minute/RPM/2

決定IOPS的主要因素在於陣列的算法、Cache命中率,以及磁盤個數。陣列的算法會由於陣列的不同而不同,例如在hds usp上面,可能因為ldev(lun)存在隊列或者資源限制,而導致單個ldev的IOPS上不去。所以我們在進行存儲I/O設計時,必須結合我們使用的存儲產品去了解這個存儲的一些算法規則與限制。

在RAID5與RAID10上,讀IOPS沒有差別。但是,相同的業務寫IOPS,最終落在磁盤上的IOPS卻是有差別的,而我們評估的正是磁盤的IOPS,如果達到了磁盤的限制,性能肯定是上不去了。

1. 安全性方面的比較

其實在安全性方面,毋庸置疑,肯定是RAID10的安全性高於RAID5。我們可以通過簡單的分析來得出此結論。當盤1損壞時,對於RAID10,只有當盤1對應的鏡像盤也損壞,才會導致RAID失效。但是對於RAID5,剩下的3塊盤中,任何一塊盤出現故障,都將導致RAID失效。

在恢復的時候,RAID10恢復的速度也快於RAID5。

2. 空間利用率的比較

RAID10的利用率是50%,RAID5的利用率是75%。硬盤數量越多,RAID5的空間利用率越高。

3. 讀寫性能方面的比較

主要分析如下三個操作:讀、連續寫、離散寫。

提示:

存儲的Cache我們已經在2.1.3中講述,因為這三個操作跟Cache有很大的關系。

1) 讀操作方面的性能差異

RAID10可供讀取有效數據的磁盤個數為4,RAID5可供讀取有效數據的磁盤個數也為4個(校驗信息分布在所有的盤上),所以兩者在讀方面的性能應該是基本一致的。

2) 連續寫方面的性能差異

在連續寫操作過程中,如果有寫Cache存在,並且算法沒有問題的話,RAID5比RAID10甚至會更好一些,雖然也許並沒有太大的差別(這里要假定存儲有一定大小,足夠的寫Cache,而且計算校驗的CPU不會出現瓶頸)。

因為這個時候的RAID校驗是在Cache中完成,如4塊盤的RAID5,可以先在內存中計算好校驗,然后同時寫入3個數據+1個校驗。而RAID10只能同時寫入2個數據+2個鏡像。

3) 離散寫方面的性能差異

例如SQL Server數據庫每次寫一個數據塊的數據,如4KB或8KB,由於每次寫入的量不是很大,而且寫入的次數非常頻繁,因此聯機日志看起來會像是連續寫。但是因為不保證能夠填滿RAID5的一個條帶,比如32KB(保證每張盤都能寫入),所以很多時候更加偏向於離散寫入(寫入到已存在數據的條帶中)。

4) 磁盤的IOPS對比

對空間利用率要求較高,而對安全性要求不是特別高的大文件存儲的系統,采用RAID5比較好。相反,安全性要求很高,不計成本,小數據量頻繁寫入的系統采用RAID10的方式比較好。

根據經驗與分析:小I/O的數據庫類型操作,如ERP等應用,建議采用RAID10;而大型文件存儲、數據倉庫,如醫療PACS系統、視頻編輯系統,從空間利用的角度,建議采用RAID5。

在一個實際的案例中,一個恢復壓力很大的standby(這里主要是寫,而且是小IO的寫),采用了RAID5的方案,發現性能很差,通過分析,每個磁盤的IOPS在高峰時期,快達到200了,導致響應速度非常之慢。后來改造成RAID10,就避免了這個性能問題,每個磁盤的IOPS降到了100左右。所以,了解RAID5和RAID10原理,對我們根據應用系統的特點來做存儲I/O設計,從而保證性能非常重要。

相關文章:

RAID在SQL Server中的應用(RAID幾種級別)

RAID 10 vs. RAID 5 Performance

SQL Server之RAID簡介

SQL Server IO 子系統淺究 II

SQLIO測試 SAN

服務器IO測試利器--SQLIO

Raid5 Raid10性能測試

SQL Server Performace on Solid State Drives (SSD)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM