[SQL][Performance]RAID and Its Impact on your SQL Performance

[SQL][Performance]RAID and Its Impact on your SQL Performance

這幾天在準備一些效能調教的課程,剛好在網路上也同時看到一篇新的文章「RAID and Its Impact on your SQL Performance」,把兩個部分順便整理一下當成以後講課的草稿。

 

當我們要考慮 RAID 的時候,首先要對 RAID 有個基本的認識,基本上 RAID 是在多顆的磁碟組合而成,如果不熟悉這些差異的朋友們,可以透過 IBM 的網站上面找到圖文並茂的說明,有關於 RAID 0 , RAID 1 和 RAID 5 和 RAID 10 的部份的介紹和容量的差異。但除了知道這些基本資料之外,那 RAID 搭配不同數量的磁碟時,速度也有很大的不同,以下我列出幾個比較常使用的排列組合:

image

表格內的數字代表是 Mb/s ,因此我們可以看到,如果想要穩定又快速的 RAID 的時候,可能還是要準備足夠數量的硬碟才可以。

 

當我們知道這些的不同之後,接下來就是不同類型的磁碟選擇,目前一般我們可以較熟悉的主要是 SAS 和 SATA 介面的磁碟:

介面

版本

頻寬

速度

SATA

1.0

1.5 Gbps

150 MBps

2.0

3.0 Gbps

300 MBps

3.0

6.0 Gbps

600 MBps

SAS

1.0

3.0 Gbps

300 MBps

2.0

6.0 Gbps

600 MBps

 

而 SATA 介面硬碟較常見的是 7200 RPM,而 SAS 介面硬碟較常見的有 10,000 和 15,000 RPM。

 

當要搭配組合的時候,除了 RAID 和硬碟的選擇之外,另外一個需要考慮的就是 RAID card。而在個人的經驗中,最常被忽略的就是 RAID Card 的 Cache 和電池 ( Battery-Backed Write Cache ),現在也有比較新的採用 Flash 當作儲存的 FBWC ( Flash-Based Write Cache ),Raid Card 必須要配合這兩者之一,才有辦法將速度給提升,完全發揮 DISK Array 的效益。

 

以 IBM M5014 Raid card 為例,如果您沒有加裝電池的時候,此時 Raid card 的 Write Policy 設定中只能允許你設定為「Write Through」,因此你的 Cache 只能協助 Disk 在讀取資料的時候有幫助,但寫入的時候速度就明顯的讀取時候有非常大的落差。但如果加裝電池之後,則 Write Policy 則可以設定為「Write Back with BBU」,此時跟沒有安裝電池時候的寫入速度相差約 60 倍。

 

感謝周遭的一些好朋友伯豐和春凱,提供以上相關測試數據,多謝。