[SQL SERVER][Tools] 善用 SQLIO

[SQL SERVER][Tools] 善用 SQLIO

對於資料庫效能來說,

定義Storage(IOps(Input/Output Operations Per Second)、Latency..等)是相當重要的一個步驟,

通常你需要安裝一些測試軟體產生相關數據結果來輔助,

而測試硬碟I/O效能工具相當多,但對於SQL Server來說就屬 SQLIOIOmeter  使用佔多數

(之前還有發現一個 wmarow (採用Web) 評測工具),

這些工具有助於你評估NAS或SAN相關設備效能是不是有達到你想要的水準,

真實世界中我看到資料庫採取Raid5較多(透過硬碟數量去彌補Raid 10 Writes IOps差距),

對於C/P值來說每人都有不同的見解(有人就是要最大容量,有人就是要最大效能..等),

anyway~~~今天我介紹個人較常使用的硬碟I/O效能測試工具SQLIO

但SQLIO不是模擬 SQL Server 的磁碟 I/O 模式,

如果你想模擬SQL Server 硬碟I/O模式的話,需使用SQLIOSim來模擬,

下面就來練習操作一下SQLIO並評估一顆硬碟效能。

 

 

硬碟資訊

型號:WDC WD2500AAJS-60Z0A

介面:SATA2

容量:250 GB(232.9)

快取大小(Buffer size): 8192 KB

轉速:7200 RPM

磁區大小(sector size): 512 bytes

 

1.設定參數檔案(C:\Program Files\SQLIO\param.txt)

修改如下

image

d:\mytestfile.dat  :測試檔案路徑和名稱

2 :設定執行緒數量(建議依CPU數量設定)

0x0 :遮罩(Mask)

100 :測試檔案大小(mb),該數值請大於系統可用記憶體10倍,以避免大部分的快取效果。

更詳細可察看使用者手冊(Using SQLIO.rtf)

 

2.設定相關參數執行SQLIO(參數解釋如下)

先測試循序寫入

sqlio -kW -s30 -fsequential -o8 -b8 -LSP -Fparam.txt timeout /T 60

image

image

-o:設定IO佇列深度,增加該值可以產生較高的吞吐量

-LS:取得硬碟延遲資訊(建議擷取)S=system,P=process。

-k :讀取(R)或寫入(W)。

-s :執行測試時間(秒為單位),建議5~10分鐘。

-b :設定配置(區塊)大小。

-f :指定IO區塊磁區模式(random(隨機) 或 sequential(循序))。

-F:指定參數檔案。

 

image

 

在測試循序讀取(避免測試資料倍快取影響,測試前請先重新啟動伺服器)

sqlio -kR -s30 -fsequential -o8 -b8 -LSP -Fparam.txt timeout /T 60

image

 

測試隨機寫入

sqlio -kW -s30 -frandom -o8 -b8 -LSP -Fparam.txt timeout /T 60

image

 

測試隨機讀取

sqlio -kR -s30 -frandom -o8 -b8 -LSP -Fparam.txt timeout /T 60

image

 

最後你可以透過效能與容量測試所提供的基本建議值來做個比較。

 

如何提高IOps

1.針對資料庫特性、容量使用適當的Raid Level。

一般來說Raid10 會比Raid50來的快(適用中小型資料庫,寫入效能高於讀取效能),

但Raid50比Raid10提供較多容量(適用大型資料庫,讀取效能高於寫入效能)...等。

針對大型資料庫微軟建議採用Raid50。

image

Summary Comparison of RAID Levels

 

2.使用高轉速儲存裝置。如15K SAS會大於10K SAS,但成本也較貴。

 

3.儲存裝置有Virtual Lun 技術。

Virtual Lun可以不受Raid Level空間限制,

可以將資料自動分配到較快速的硬碟中存放,

藉以提高儲存裝置的利用率和效能,

知名廠商EMC..等皆有使用相關技術

 

 

 

參考

IT工具箱-量測I/O效能的標準工具:Iometer

FAT 和 NTFS 的預設叢集大小

如何使用 SQLIOSim 公用程式,以模擬在磁碟子系統上的 SQL Server 活動

效能與容量測試 (FAST Search Server 2010 for SharePoint)

[SQL SERVER][Performance]找出硬體Bottleneck

SQLIO Tips and Tricks for LOB Disk Performance Testing

Analyzing Storage Performance

What is it and how to calculate IOPS (Exchange, SQL, SharePoint, others)?

RAID 50 offers a balance of performance, storage capacity, and data integrity