2014年1月27日 星期一

SQL Server 儲存設備 (Storage) 最佳調整作業

SQL Server 儲存設備 (Storage) 最佳調整作業


本篇主要參考Microsoft推出的一篇文章,內容主要介紹如何調整SQL Server資料庫的儲存設備(Storage),我目前發現在服務處理許多廠商的資料庫架構後,大家在儲存設備(Storage)的部份還是無法有效的設計,所以提供下列的文章再與大家分享。

1. 了解應用程式對資料庫I/O的影嚮,如應用程式的讀寫比率與需求量,此部份可以透過Microsoft 提供的效能監視器來進行監控統計,在觀察的物件上,可參考下列的物件進行分析。
A.  Average read bytes/sec, average write bytes/sec
B.  Reads/sec, writes/sec
C.  Disk read bytes/sec, disk write bytes/sec
D.  Average disk sec/read, average disk sec/write
E.   Average disk queue length

2.  利用多顆磁碟的方式,有效的改善效能。
A. 使用File Groups的方式可以讓Backup / Restore等作業時分散運作,進而降低運作時間。
B. 使用多個資料檔(Data Files)可以將資料分散在多顆磁碟上,透過分散處理的機制,改善效能。

3. 不要一味地調整並最佳化磁碟的設計,有時候簡單的設計會得到更好的效能與可靠度。
A. 除非你非常的了解應用程式,要不然不要太過於調整I/O效能。
B. 確認了解I/O的成長趨視,並重新平衡的將資料放置在磁碟上。

4. 在部署前確認儲存設備的狀態與相關設定。
A. 實際進行一些簡單的壓力測試,可以了解到I/O的效能,而Microsoft提供的SQLIO可以有效的模擬SQL Server實際的讀寫動作,該軟體可以透過下列網址下載。SQLIO Disk Subsystem Benchmark Tool.
B. 另外使用IOMETER也可以有效的進行模擬測試。

5. 永遠將交易記錄檔(Log Files)放置在RAID 1+ 0 or RAID 1的磁碟陣列上。
A. 可以得到最好的硬碟失敗保護和最好的寫入效能。
備註:在一般上RAID 1+ 0將提供最好的生產力給寫入密集的應用程式。大部份為了節省經費都會利用RAID 5來取代,但是RAID 1+0 將提供最好的寫入效能比其他的RAID等級。

6. 將交易記錄檔(Log Files)與資料檔(Data Files)放置在不同的實體磁碟上。
A. 當上述的條件是不可能時,考慮系統上I/O的特性和群組化相似的I/O特性,在其他的硬碟上。
B. 結合異質的工作負載會造成負面的效果在整體效能上,如Exchange 和 SQL 的資料檔(Data Files)在相同硬碟上。

7. 考慮進行TEMPDB的配置。
A. 確認移動TEMPDB 到合適和預定設定大小的硬碟空間上,在安裝SQL Server之後。
B. 如果將TEMPDB放置在RAID 1+ 0的磁碟上,可以獲得最佳的效能。
C. 對於TEMPDB,產生每一個CPU對應到1個 資料檔(Data Files)。

8. 連接資料檔(Data Files)分配的數量與CPU核心之間分配的關係
A. 建議上最好配置0.25到1個資料檔(Data Files)對於每一個CPU在主機上。
B. 在推薦上 TEMPDB 最好一個資料檔(Data Files)對應到一個CPU。
C. 雙核心的CPU可以當成是2個CPU。

9. 不要忽略SQL Server的基礎設定
A. 在分配多個資料檔(Data Files)後,每一個大小應該都是相同的。
B. 預先設定資料檔(Data Files) 和交易記錄檔(Log Files) 的大小。
C.  不要依賴自動成長的選項,最好透過手動成長的方式進行處理,但是為了安全可以保留此選項。

10.  不要忽略磁碟的基礎設定
A. 從硬碟廠商更新至最新的HBA Drives .
B. 可以從硬碟廠商的網站取得最新的HBA Drives
C. 根據你系統的情況調整HBA Driver的設定值。
D. 確認你的磁碟陣列的韌體是更新到最新與最佳的等級。
E. 使用多重通道的軟體來達到HBA與LUN的平衡負載。
F.  簡化配置和提出可用度的優勢
G. Microsoft Multipath I/O (MPIO): 微軟提供驅動程式開發工具可用來建立 Device Specific Modules (DSM)。

原文名稱:Storage Top 10 Best Practices
轉載自《CaryHsu - 學無止盡》