搜尋本站文章

2011-09-27

認識「SQLIOSim 公用程式」;以 SQL Server 2008 為例

認識「SQLIOSim 公用程式」的版本:

(1) SQL Server 2005 的 「SQLIOSim 公用程式」 是需要個別上網下載之套件。
(2) 從 SQL Server 2008 開始,「SQLIOSim 公用程式」 會包含 SQL Server 安裝內。

「SQLIOSim 公用程式」會取代「SQLIOStress 公用程式」。
「SQLIOStress 公用程式」之前稱為 「 SQL70IOStress 公用程式」。

「SQLIOSim 公用程式」主要的功能:


(1) 使用此工具來執行磁碟子系統上的可靠性和完整性測試。
(2) 這些測試會模擬 SQL Server 的讀取、 寫入、 檢查點、 備份、 排序和預先讀取等等的活動。

若需要的對磁碟子系統執行基準測試等需求,建議使用「SQLIO 公用程式」。
http://sharedderrick.blogspot.com/2011/09/sqlio-sqlio-disk-subsystem-benchmark_26.html

「SQLIOSim 公用程式」與「SQLIOStress 公用程式」比較起來:
更精確地模擬的 SQL Server 2005、 SQL Server 2000,及 SQL Server 7.0 的磁碟 I/O 模式。



使用環境:
SQL Server 2008
SQL Server 2008 R2


若是以「預設執行個體」為例,「SQLIOSim 公用程式」係位於以下的路徑:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn

主要的執行程式:SQLIOSIM.EXE、SQLIOSIM.COM。

--00



相關檔案的說明:

(1) SQLIOSIM.COM 檔案:是一種命令列工具讓您可以設定在沒有使用者互動的情況下執行。
若要執行這項操作,您可以使用命令列參數,組態檔或這兩種方法的組合。

(2) SQLIOSIM.EXE 檔案:是一個圖形的應用程式可接受不在命令列參數。
但是,SQLIOSim.exe 並不會載入預設的組態資料組態檔。

(3) sqliosim.cfg.in 檔案:此為目前的環境組態檔案(Config File),因故調整 「SQLIOSim 公用程式」的參數,此檔案將用來存放相關的設定,若刪除此檔案,將回復系統的預設值。
若是沒有此檔案,「SQLIOSim 公用程式」於第一次執行後會自動產生。

(4) sqliosim.log.xml 檔案:存放 「SQLIOSim 公用程式」在執行後的相關記錄。每次執行的結果,都會附加在此檔案內。

(5) ErrorLog.xslt 檔案:sqliosim.log.xml 需要使用此 ErrorLog.xslt 檔案來進行轉化。



實作練習:認識 「SQLIOSim 公用程式」的圖形介面應用程式為例

使用環境:
SQL Server 2008 R2
已經組態兩個磁碟區:C、E。
使用 Hyper-V:VHD 檔案。

磁碟機資訊:
WD Western Digita 「迅猛龍(VelociRaptor)」,10000轉/16M x 2,組成 RAID 0。

工作1:認識「SQLIOSim 公用程式」的圖形介面應用程式

步驟01. 執行「檔案總管」,滑鼠雙擊程式:SQLIOSIM.EXE。
--01


步驟02. 在「Files and Configuation」視窗,在「Database Files」區域,在中間的「檔案名稱」區域,設定以下參數:

選取「C:\sqliosim.mdx」,點選「Remove」按鈕。
選取「C:\sqliosim.ldx」,點選「Remove」按鈕。

--02


--03


選取「E:\sqliosim.mdx」,在「Size(MB)」方塊,變更資料值由原先的 4096 為 2048;
在「Max Size」方塊,變更資料值由原先的 8192 為 4096;
在「Increment」方塊,變更資料值由原先的 10 為 20,點選「Apply」。

選取「E:\sqliosim.ldx」,在「Size(MB)」方塊,設定為 512;在「Max Size」方塊,變更資料值由原先的 50 為 2048;
在「Increment」方塊,變更資料值由原先的 0 為 10,點選「Apply」。

在「System Level Configurations」區域,在「Cycle Duration(sec)」方塊,變更資料值由原先的 300 為 60,勾選「Delete Files at Shutdown」。

--04


注意事項:
檔案 *.mdx:相當於 *.mdf,也就是資料檔案。
檔案 *.ldx:相當於 *.ldf,也就是交易記錄檔案。

--05_至少要有一個記錄檔和一個資料檔



步驟03. 在「Files and Configuation」視窗,點選「OK」按鈕。

步驟04. 在「SQLIOSim」程式視窗,在上方的工具列,點選「Start」按鈕。
第一次執行時,因為沒有記錄檔案,會有警告訊息。

--06


--0701


--0702


--0703


步驟05. 等待 SQLIOSim 公用程式執行完成後,在「SQLIOSim」視窗,點選「確定」。

--08


步驟06. 檢視 SQLIOSim 公用程式的執行報表:

--09


--10


--11


例如,可以觀察 Running Average IO Duration 等資料:
...
********** Final Summary for file E:\sqliosim.mdx **********
...
Target IO Duration (ms) = 100, Running Average IO Duration (ms) = 31, Number of times IO throttled = 3102, IO request blocks = 29
Reads = 4145, Scatter Reads = 10883, Writes = 372, Gather Writes = 13583, Total IO Time (ms) = 5860211
DRIVE LEVEL: Sector size = 512, Cylinders = 16578, Media type = 12, Sectors per track = 63, Tracks per Cylinders = 255
...

********** Final Summary for file E:\sqliosim.ldx **********
...
Target IO Duration (ms) = 100, Running Average IO Duration (ms) = 72, Number of times IO throttled = 13, IO request blocks = 8
Reads = 0, Scatter Reads = 0, Writes = 2416, Gather Writes = 0, Total IO Time (ms) = 140639
...

工作2:認識 「SQLIOSim 公用程式」的命令列工具

步驟01. 使用「檔案總管」,執行檔案:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\SQLIOSIM.COM

將自動使用先前練習所建立的組態檔案:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqliosim.cfg.ini

--12


--13


步驟02. 執行完成後,執行視窗將會自動關閉。

步驟03. 可以使用 Internet Explorer 來閱讀檔案:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqliosim.log.xml


--14


--15




參考資料:

如何使用 SQLIOSim 公用程式在磁碟子系統上模擬 SQL Server 活動
http://support.microsoft.com/kb/231619

SQL Server Storage Engine blog
http://blogs.msdn.com/sqlserverstorageengine/archive/2006/10/06/SQLIOSim-available-for-download.aspx

PSS SQL Server Engineers
http://blogs.msdn.com/psssql/archive/2007/04/10/sqliosim-outstanding-i-o-warnings.aspx

Understanding SQLIOSIM Output
http://sqlblog.com/blogs/kevin_kline/archive/2007/06/28/understanding-sqliosim-output.aspx

Interpreting Output from SQLIOSIM
http://sqlblog.com/blogs/kevin_kline/archive/2008/12/14/interpreting-output-from-sqliosim.aspx

Using SQLIOSim to Diagnose SQL Server Reported Checksum (Error 824/823) Failures
http://blogs.msdn.com/b/psssql/archive/2008/12/19/using-sqliosim-to-diagnose-sql-server-reported-checksum-error-824-823-failures.aspx

Should I run SQLIOSim? - An e-mail follow-up from SQL PASS 2008
http://blogs.msdn.com/psssql/archive/2008/11/24/should-i-run-sqliosim-an-e-mail-follow-up-from-sql-pass-2008.aspx

What do I need to know about SQL Server database engine I/O?
http://blogs.msdn.com/psssql/archive/2006/11/27/what-do-i-need-to-know-about-sql-server-database-engine-i-o.aspx

SQLIOSim is "NOT" an I/O Performance Tuning Tool
http://blogs.msdn.com/psssql/archive/2008/04/05/sqliosim-is-not-an-i-o-performance-tuning-tool.aspx

How It Works: SQLIOSim - Running Average, Target Duration, Discarded Buffers ...
http://blogs.msdn.com/psssql/archive/2008/11/12/how-it-works-sqliosim-running-average-target-duration-discarded-buffers.aspx

How It Works: SQLIOSim [Audit Users] and .INI Control File Sections with User Count Options
http://blogs.msdn.com/psssql/archive/2008/08/19/how-it-works-sqliosim-audit-users-and-ini-control-file-sections-with-user-count-options.aspx

--
SQL Server 2000 I/O Basics
http://technet.microsoft.com/zh-tw/library/cc966500(en-us).aspx

SQL Server I/O Basics, Chapter 2
http://technet.microsoft.com/en-us/library/cc917726.aspx

-- Microsoft 技術文章
SQL Server 7.0、 SQL Server 2000 和 SQL Server 2005 記錄和資料儲存體演算法擴充資料可靠性
http://support.microsoft.com/kb/230785

將硬碟控制卡快取與 SQL Server 搭配使用
http://support.microsoft.com/kb/46091

每個資料庫管理員都應知道的磁碟機快取與 SQL Server 並用說明
http://support.microsoft.com/kb/234656

快取在 SQL Server 中的磁碟控制卡的描述
http://support.microsoft.com/kb/86903

SQL Server Database Engine Input/Output Requirements
http://support.microsoft.com/kb/967576

-- Microsoft 技術文章:發生 I/O 錯誤
How to troubleshoot Msg 605 with SQL Server
http://support.microsoft.com/kb/2015739/en-us

How to troubleshoot a Msg 823 error in SQL Server
http://support.microsoft.com/kb/2015755

How to troubleshoot Msg 824 in SQL Server
http://support.microsoft.com/kb/2015756

How to troubleshoot Msg 825 (read retry) in SQL Server
http://support.microsoft.com/kb/2015757/en-us

How to troubleshoot database consistency errors reported by DBCC CHECKB
http://support.microsoft.com/kb/2015748

--
認識「SQLIO 公用程式」
http://sharedderrick.blogspot.com/2011/09/sqlio-sqlio-disk-subsystem-benchmark_26.html

認識「SQLIO 公用程式」所使用的參數
http://sharedderrick.blogspot.com/2011/09/sqlio-sqlio-disk-subsystem-benchmark.html

認識「SQLIOSim 公用程式」,以下載「SQLIOSim 公用程式」為例
http://sharedderrick.blogspot.com/2011/09/sqliosim-sqliosim.html