使用 SQLIOSim 公用程式來模擬磁碟子系統上的 SQL Server 活動
本文說明如何使用 SQLIOSim 公用程式在磁碟子系統上執行壓力測試,以模擬 SQL Server 活動。
原始產品版本:SQL Server
原始 KB 編號: 231619
簡介
本文說明 SQLIOSim 工具。 您可以使用 SQLIOSim,在 SQL Server 所使用的磁碟子系統上執行可靠性和完整性測試。 這些 SQLIOSim 測試會模擬 SQL Server Microsoft的讀取、寫入、檢查點、備份、排序和讀取預先活動。 如需 SQL Server I/O 模式的詳細資訊,請參閱 SQL Server I/O 基本概念,第 2 章。 SQLIOSim 公用程式會獨立於 SQL Server 引擎執行此模擬。
I/O 模擬測試的主要目標是在 SQL Server 開始使用之前,確保基礎 I/O 子系統的可靠性。 SQLIOSim 不會與 SQL Server 互動,甚至不需要執行 SQL Server。 事實上,在大部分情況下,建議您在 SQL Server 未執行時使用 SQLIOSim,以避免兩個應用程式之間的 I/O 輸送量競爭。 請非常小心不要指向或使用 SQLIOSim 測試中實際的 SQL Server 資料庫檔案,因為您可以覆寫它們。
為了協助維護適當的數據完整性,建議您在新的硬體上部署 SQL Server 之前,先執行 I/O 子系統的壓力測試。 SQLIOSim 公用程式會模擬 SQL Server 的讀取和寫入模式和問題識別技術。 為了執行這些工作,SQLIOSim 公用程式會模擬 SQL Server 系統的用戶活動和系統活動。
SQLIOSim 公用程式不保證或保證數據安全性或完整性。 公用程序的設計目的是要提供系統環境的基準測試。 SQLIOSim 公用程式可能會公開潛在的數據完整性問題。
如需記錄和數據記憶體的詳細資訊,請參閱 描述記錄和數據儲存演算法,以擴充 SQL Server 中的數據可靠性。
如果您必須執行效能效能評定測試,並想要判斷記憶體系統的 I/O 輸送量容量,請改用 Diskspd 工具。
SQLIOSim 公用程式會取代 SQLIOStress 公用程式,其先前稱為 SQL70IOStress 公用程式。
SQLIOSim 位置
過去,SQLIOSim 隨附為個別的下載套件。 從 SQL Server 2008 開始,SQLIOSim 會包含在 SQL Server 產品安裝中。 當您安裝 SQL Server 時,您可以在 SQL Server 安裝的 \Binn 資料夾中找到 SQLIOSim 工具。 我們建議您使用此工具的這個更新版本來模擬磁碟子系統上的IO活動。
三個檔案是 SQLIOSim 套件的一部分。 \Binn 資料夾包含兩個可執行檔,SQLIOSim.com 和SQLIOSim.exe。 這兩個可執行檔都提供相同的 I/O 模擬功能。
- SQLIOSim.com 是命令行工具。 您可以將它設定為在沒有使用者互動的情況下執行。 若要執行此設定,您可以使用命令行參數、組態檔或這兩種方法的組合。
- SQLIOSim.exe是不接受命令行參數的圖形化 (GUI) 應用程式。 不過, SQLIOSim.exe 從組態檔載入預設組態數據。
- 您也可以使用組態檔來協助使用 SQLIOSim 將 I/O 模擬自動化。 如需詳細資訊,請參閱 SQLIOSim 組態檔 一節。
在沒有 SQL Server 的電腦上使用 SQLIOSim
建議您在安裝 SQL Server 之前,先在電腦上安裝 SQLIOSim 進行擴充測試。 使用它來測試您打算在未來放置數據和記錄檔的 I/O 子系統,並確保 I/O 子系統的可靠性。 若要完成這項工作,請考慮從安裝 SQL Server 的電腦複製三個 SQLIOSim 檔案,並在 SQL Server 安裝之前執行測試。 如果您打算使用預先設定的設定,請複製 SQLIOSim.com、 SQLIOSim.exe,以及選擇性地複製一或多個組態檔。 然後在該計算機上執行測試模擬。
如何使用 SQLIOSim
當您執行 SQLIOSim 時,不需要執行 SQL Server 服務。 事實上,建議您不要在 SQLIOSim 執行時執行 SQL Server,因為它們可以競爭 I/O 資源。
警告
請勿指定實際的 SQL Server 資料庫檔案進行測試。 SQLIOSim 公用程式會以隨機測試模式覆寫數據,而實際的 SQL Server 資料將會遺失。
接下來的幾個範例說明如何使用 GUI 和命令行執行 SQLIOSim。
範例 1:使用 GUI
移至 C:\Program Files\Microsoft SQL Server\MSSQLXX。<InstanceName>\MSSQL\Binn。
啟動SQLIOSIM.EXE應用程式。 您可以看到 [ 檔案和組態 ] 視窗,其中包含一些預設設定。 您可以修改這些設定,以符合您的設定需求。
反白顯示清單中的第一個 mdx 檔案 C:\temp\sqliosim\sqliosim.mdx 。 這個檔案相當於數據檔。
變更檔案的位置、大小、大小上限或遞增,以修改檔案設定。 當您想要模擬資料檔時,請取消核取記錄檔。 然後選取 [ 套用] 按鈕。
此範例顯示檔案的位置已變更為 D:\temp\sqliosim\sqliosim.mdx,其大小設定 為 2048 MB,其大小上限設定 為 4096 MB,且其增量大小設定 為 64 MB。
使用 ldx 後綴修改第二個檔案。 這個檔案代表事務歷史記錄檔的對等專案。 請務必保留 [記錄檔 ] 複選框。 完成時,選取套用。
您可以選取 表格式方格內畫面中央的 [新增檔案 ] 選項,將更多檔案新增至清單。 選取 [ 新增檔案] 之後,您可以輸入檔案位置並挑選其餘的設定。 別忘了選取 [ 套用]。 以下是範例:
一旦您滿意您的設定,請選取 [ 確定 ] 按鈕。
選取 [模擬器>開始] 以執行 SQL IO 模擬。 或者,您也可以選取 F12 或最左邊的按鈕,其內有綠色圓圈。
等候模擬完成並檢查輸出。
範例 2:使用命令行工具和組態檔
拿掉 和
File2
區段的File1
批注,並將值修改FileName
為新的 SQLIOSim 檔案,以修改sqliosim.default.cfg.ini檔案。 例如:[File1] FileName=D:\sqliosim\sqliosim.mdx InitialSize=100 MaxSize=200 Increment=10 Shrinkable=TRUE LogFile=FALSE Sparse=FALSE [File2] FileName=L:\sqliosim\sqliosim.ldx InitialSize=50 MaxSize=50 Increment=0 Shrinkable=FALSE LogFile=TRUE Sparse=FALSE
使用組態檔 C:\temp\sqliosimconfig\sqliosim.default.cfg.ini執行 SQLIOSIM.COM:
SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosimconfig\sqliosim.log.xml
範例 3:搭配參數使用命令行工具
您可以使用 參數同時 -dir
測試多個磁碟區。 下列範例會建立 500 MB 的檔案,並執行測試 300 秒(五分鐘)。
SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosim\sqliosim.log.xml -dir "D:\sqliosim" -dir "F:\sqliosim\testfolder" -size 500 -d 300
範例 4:針對多個磁碟驅動器使用命令行工具
下列範例會建立 32 GB 的檔案,並使用 sqliosim.hwcache.cfg.ini 組態檔執行測試 600 秒(10 分鐘)。
SQLIOSIM.COM -cfg "D:\Temp\SQLIOSIM\SQLIOSIM_Configs\sqliosim.hwcache.cfg.ini" -d 600 -dir D:\temp\sqliosim -log D:\temp\sqliosim\simlog.xml -size 32768
SQLIOSim.com 命令行參數
SQLIOSIM.COM 接受有限的命令行參數來控制基本行為。 SQLIOSim 公用程式的組態檔提供進階行為控制。 當命令行參數和組態檔選項重疊時,命令行參數會優先使用。
參數 | 註解 |
---|---|
-cfg 檔 |
覆寫Sqliosim.cfg.ini預設組態檔。 如果公用程式找不到檔案,SQLIOSim 公用程式會傳回錯誤。 |
-save 檔 |
將產生的組態儲存在組態檔中。 您可以使用此選項來建立初始組態檔。 |
-log 檔 |
指定錯誤記錄檔名稱和錯誤記錄檔路徑。 默認檔名為 Sqliosim.log.xml。 |
-dir 迪爾 |
設定位置以建立資料 (.mdf) 檔案和記錄檔 (.ldf) 檔案。 您可以多次執行此命令。 在大部分情況下,此位置是磁碟驅動器根目錄或磁碟區裝入點。 這個位置可以是長路徑或 UNC 路徑。 |
-d 秒 |
設定主要執行的持續時間。 此值會排除準備階段和驗證階段。 |
-size MB |
以 MB 為單位設定資料檔的初始大小。 檔案最多可以成長到初始大小的兩倍。 記錄檔的大小會計算為數據檔大小的一半。 不過,記錄檔不能大於 50 MB。 |
SQLIOSim 組態檔
您可以使用組態檔搭配 SQLIOSim,協助您選擇 I/O 仿真的所有預先設定。 此組態檔可協助自動化 SQLIOSim 的執行。
您可以從 SQL Server 支援小組的 GitHub 存放庫下載各種測試的範例組態檔。
您不需要使用組態檔。 如果您沒有使用組態檔,所有參數都會採用預設值,但數據檔位置和記錄檔位置除外。 您必須使用下列其中一種方法來指定資料檔案位置和記錄檔位置:
- 使用 SQLIOSIM.COM 檔案中的命令行參數。
- 執行SQLIOSim.exe檔案之後,請使用 [檔案和組態] 對話框。
- 使用組態檔的 [檔案<N>] 區段。
範例組態檔
如果您想要將其用於自動化 SQLIOSim 執行,可以使用五個範例組態檔。
範例檔案 | 描述 | 與預設組態檔不同的參數 |
---|---|---|
sqliosim.default.cfg.ini | ||
sqliosim.hwcache.cfg.ini | - 最小化讀取 - 檔案會很小,使其完全保留在記憶體中 - 沒有循序讀取 |
針對 AuditUser 區段和 ReadAheadUser 區段:CacheHitRatio=10000 UserCount=0 |
sqliosim.nothrottle.cfg.ini | - 移除 I/O 節流 - 將等候增加 I/O 磁碟區的時間降至最低 |
TargetIODuration=1000000 AuditDelay=10 RADelay=10 |
sqliosim.seqwrites.cfg.ini | - 最小化讀取 - 檔案會很小,使其完全保留在記憶體中 - 檔案無法壓縮 - 沒有循序讀取 - 沒有隨機存取 - 大量更新大型區塊,而不會延遲 |
Shrinkable=FALSE 針對 AuditUser、ReadAheadUser 和 RandomUser 區段: CacheHitRatio=10000 ForceReadAhead=FALSE BuffersBUMin=600 BuffersBUMax=1000 BUDelay=1 UserCount=0 |
sqliosim.sparse.cfg.ini | - 只使用 32 MB 的記憶體 - 讓目標 I/O 持續時間夠大,以啟用許多未完成的 I/O 要求 - 停用散佈/收集 API,針對每一個 8 KB 頁面發出個別的 I/O 要求 - 建立 1 GB 不可壓縮的檔案 - 在檔案中建立 1 GB 不可寫入的次要疏鬆數據流 |
MaxMemoryMB=32 TestCycles=3 TestCycleDuration=600 TargetIODuration=10000 UseScatterGather=FALSE [File1] FileName=sqliosim.mdx InitialSize=1000 MaxSize=1000 Increment=10 Shrinkable=FALSE LogFile=FALSE Sparse=FALSE [File2] FileName=sqliosim.ldx InitialSize=50 MaxSize=50 Increment=0 Shrinkable=FALSE LogFile=TRUE Sparse=FALSE [File3] FileName=sqliosim.mdx:replica InitialSize=1000 MaxSize=1000 Increment=10 Shrinkable=FALSE LogFile=FALSE Sparse=TRUE |
參數值的警告
- 如果參數的名稱指出參數是比率或百分比,則參數的值會以百分比表示,或比例除以0.01。 例如,參數的值
CacheHitRatio
是10 percent
。 此值表示為1000
,因為 10 除以 0.01 等於1000
。 百分比參數的最大值為10000
。 - 如果參數類型為數值,而且您會將非數值指派給 參數,SQLIOSim 公用程式會將 參數設定為
0
。 - 如果參數型態為
Boolean
,您可以指定參數true
的有效值為和false
。 此外,這些值會區分大小寫。 SQLIOSim 公用程式會忽略任何無效的值。 - 如果一組參數表示最小值和最大值,則最小值不得超過最大值。 例如,參數的值
MinIOChainLength
不得大於 參數的值MaxIOChainLength
。 - 如果參數指出多個頁面,SQLIOSim 公用程式會根據 SQLIOSim 公用程式所處理的檔案,檢查您指派給 參數的值。 SQLIOSim 公用程式會執行這項檢查,以確保頁面數目不會超過檔案大小。
組態檔區段
組態檔中有數個區段:
- [CONFIG]
- [RandomUser]
- [AuditUser]
- [ReadAheadUser]
- [BulkUpdateUser]
- [ShrinkUser]
- [檔案<N>] (佔位元
<N>
元為數位)
下一節將說明上述各節。
CONFIG 區段
SQLIOSim 公用程式會採用您在 SQLIOSim 組態檔的 CONFIG 區段中指定的值,以建立全域測試行為。
參數 | 預設值 | 說明 | 註解 |
---|---|---|---|
ErrorFile |
sqliosim.log.xml | XML 類型記錄檔的名稱 | |
CPUCount |
計算機上的CPU數目 | 要建立的邏輯 CPU 數目 | 最大值為 64 個 CPU。 |
Affinity |
0 | 要套用至邏輯 CPU 的實體 CPU 親和性遮罩 | 親和性遮罩應位於作用中的CPU遮罩內。 值 0 表示將使用所有可用的CPU。 |
MaxMemoryMB |
SQLIOSim 公用程序啟動時可用的物理記憶體 | 以 MB 為單位的緩衝池大小 | 此值不能超過計算機上的物理記憶體總量。 |
StopOnError |
true | 在第一個錯誤發生時停止模擬 | |
TestCycles |
1 | 要執行的完整測試週期數目 | 的值 0 表示無限數目的測試週期。 |
TestCycleDuration |
300 | 測試週期的持續時間以秒為單位,不包括周期結束時的稽核通過 | |
CacheHitRatio |
1000 | 當 SQLIOSim 公用程式從磁碟讀取時模擬快取命中率 | |
MaxOutstandingIO |
0 | 允許整個進程的未處理 I/O 作業數目上限 | 值不能超過 140,000。 值 0 表示最多允許 140,000 個 I/O 作業。 這是公用程式的限制。 |
TargetIODuration |
100 | I/O 作業的持續時間,以毫秒為單位,以節流為目標 | 如果平均 I/O 持續時間超過目標 I/O 持續時間,SQLIOSim 公用程式會節流未處理的 I/O 作業數目,以減少負載並改善 I/O 完成時間。 |
AllowIOBursts |
true | 允許關閉節流以張貼許多 I/O 要求 | I/O 高載會在初始更新、初始檢查點和測試週期結束時通過最後的檢查點期間啟用。 MaxOutstandingIO 仍然接受 參數。 您可以預期會有很長的 I/O 警告。 |
NoBuffering |
true | FILE_FLAG_NO_BUFFERING 使用選項 |
SQL Server 會使用 FILE_FLAG_NO_BUFFERING == true 開啟資料庫檔案。 某些公用程式和服務,例如 Analysis Services,請使用 FILE_FLAG_NO_BUFFERING == false 。 若要完整測試伺服器,請針對每個設定執行一個測試。 |
WriteThrough |
true | FILE_FLAG_WRITE_THROUGH 使用選項 |
SQL Server 會使用 FILE_FLAG_WRITE_THROUGH == true 開啟資料庫檔案。 不過,某些公用程式和服務會使用 FILE_FLAG_WRITE_THROUGH == false 開啟資料庫檔案。 例如,SQL Server Analysis Services 會使用 FILE_FLAG_WRITE_THROUGH == false 開啟資料庫檔案。 若要完整測試伺服器,請針對每個設定執行一個測試。 |
ScatterGather |
true | 使用 ReadScatter 或 WriteGather API |
如果此參數設定為 true ,則 NoBuffering 參數也會設定為 true 。SQL Server 會針對大部分的 I/O 要求使用散佈/收集 I/O。 |
ForceReadAhead |
true | 即使數據已讀取,仍執行預先讀取作業 | 即使數據頁已經在緩衝池中,SQLIOSim 公用程式仍會發出 read 命令。 Microsoft SQL Server 支援已成功使用 true 設定來公開 I/O 問題。 |
DeleteFilesAtStartup |
true | 如果檔案存在,請在啟動時刪除檔案 | 檔案可能包含多個數據流。 檔案中 File <N> FileName 只會截斷專案中指定的數據流。 如果指定預設數據流,則會刪除所有數據流。 |
DeleteFilesAtShutdown |
false | 測試完成後刪除檔案 | 檔案可能包含多個數據流。 檔案中 File <N> FileName 只會截斷您在專案中指定的數據流。 如果指定了預設數據流,SQLIOSim 公用程式會刪除所有數據流。 |
StampFiles |
false | 藉由戳記零展開檔案 | 如果檔案很大,此程式可能需要很長的時間。 如果您將此參數設定為 false,SQLIOSim 公用程式會藉由設定有效的數據標記來擴充檔案。 SQL Server 2005 會針對數據檔使用立即檔案初始化功能。 如果數據檔是記錄檔,或未啟用立即檔案初始化,SQL Server 會執行零戳記。 SQL Server 2000 之前的 SQL Server 版本一律執行零戳記。 您應該在測試期間切換 參數的值 StampFiles ,以確保立即檔案初始化和零戳記都正常運作。 |
檔案<N> 區段
SQLIOSim 公用程式的設計目的是允許多個檔案測試。 區File<N>
段會表示為 [File1]
[File2]
測試中每個檔案的 。
參數 | 預設值 | 說明 | 註解 |
---|---|---|---|
FileName |
沒有預設值 | 檔案名稱和路徑 | 參數 FileName 可以是長路徑或 UNC 路徑。 它也可以包含次要數據流名稱和類型。 例如, FileName 參數可能設定為 file.mdf:stream2 。注意 在 SQL Server 2005 中,DBCC 作業會使用數據流。 建議您執行串流測試。 |
InitialSize |
沒有預設值 | 以 MB 為單位的初始大小 | 如果現有的檔案大於參數 InitialSize 指定的值,SQLIOSim 公用程式就不會壓縮現有的檔案。 如果現有的檔案較小,SQLIOSim 公用程式會展開現有的檔案。 |
MaxSize |
沒有預設值 | 以 MB 為單位的大小上限 | 檔案無法成長超過您為 MaxSize 參數指定的值。 |
Increment |
0 | 以 MB 為單位的大小,以遞增的方式成長或縮小檔案。 如需詳細資訊,請參閱 ShrinkUser 本文的 一節。 |
SQLIOSim 公用程式會在 Increment 啟動時調整 參數,以便建立情況: Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles 。如果 值為 Increment 0 ,SQLIOSim 公用程式會將檔案設定為不可壓縮。 |
Shrinkable |
false | 指出檔案是否可以壓縮或展開 | 如果您將 Increment 參數設定為 0 ,則會將檔案設定為不可壓縮。 在這裡情況下,您必須將 Shrinkable 參數設定為 false 。 如果您將 Increment 參數設定為 以外的 0 值,則會將檔案設定為可壓縮。 在這裡情況下,您必須將 Shrinkable 參數設定為 true 。 |
Sparse |
false | 指出是否應該在檔案上設定疏鬆屬性 | 對於現有的檔案,當您將 參數設定 Sparse 為 false 時,SQLIOSim 公用程式不會清除疏鬆屬性。SQL Server 2005 使用疏鬆檔案來支援快照集資料庫和次要 DBCC 數據流。 建議您同時啟用疏鬆檔案和數據流,然後執行測試階段。 注意 如果您為檔案設定設定 Sparse = true ,請勿在 config 區段中指定 NoBuffering = false 。 如果您使用這兩個衝突的組合,您可能會收到類似此工具的錯誤:錯誤:-=====Error: 0x80070467 錯誤文字:存取硬碟時,即使重試之後,磁碟作業也會失敗。 描述:C:\SQLIOSim.mdx 頁面上的緩衝區驗證失敗:28097 |
LogFile |
false | 指出檔案是否包含使用者或事務歷史記錄數據 | 您應該至少定義一個記錄檔。 |
RandomUser 區段
SQLIOSim 公用程式會採用您在 區段中指定的 RandomUser
值來模擬執行隨機查詢作業的 SQL Server 背景工作角色,例如在線事務處理 (OLTP) I/O 模式。
參數 | 預設值 | 說明 | 註解 |
---|---|---|---|
UserCount |
-1 | 同時執行的隨機存取線程數目 | 值不能超過值: CPUCount*1023-100 。所有用戶的總數也無法超過此值。 值為零 (0) 表示您無法建立隨機存取使用者。 值 -1 表示您必須使用值的自動設定: min(CPUCount*2, 8) 。注意 SQL Server 系統可能有數千個工作階段。 大部分的會話沒有作用中的要求。 在查詢 sys.dm_exec_requests 中針對動態管理檢視 (DMV) 使用 函count(*) 式作為建立此測試參數值的基準。CPUCount 這裡是指 區段中參數CONFIG 的值CPUCount 。值 min(CPUCount*2, 8) 會導致和8 之間的CPUCount*2 值較小。 |
JumpToNewRegionPercentage |
500 | 跳至檔案新區域的機會 | 區域開頭會隨機選取。 區域的大小是參數值 MinIOChainLength 與參數值之間的隨機值 MaxIOChainLength 。 |
MinIOChainLength |
1 | 頁面的區域大小下限 | |
MaxIOChainLength |
100 | 頁面的區域大小上限 | SQL Server 2005 Enterprise Edition 和 SQL Server 2000 Enterprise Edition 最多可提前閱讀 1,024 頁。 最小值為 0 。 最大值受限於系統記憶體。一般而言,隨機用戶活動會導致進行小型掃描作業。 使用區段中指定的 ReadAheadUser 值來模擬較大的掃描作業。 |
RandomUserReadWriteRatio |
9000 | 要更新的頁面百分比 | 在區域中選取隨機長度鏈結,而且可能會讀取。 此參數會定義要更新並寫入磁碟的頁面百分比。 |
MinLogPerBuffer |
64 | 以位元組為單位的記錄檔記錄大小下限 | 此值必須是磁碟扇區大小的倍數,或是符合磁碟扇區大小的倍數。 |
MaxLogPerBuffer |
8192 | 以位元組為單位的記錄檔記錄大小上限 | 此值不能超過 64,000。 此值必須是磁碟扇區大小的倍數。 |
RollbackChance |
100 | 發生記憶體內部作業導致復原作業發生的機會。 | 發生此復原作業時,SQL Server 不會寫入記錄檔。 |
SleepAfter |
5 | 每個周期之後的睡眠時間,以毫秒為單位 |
AuditUser 區段
SQLIOSim 公用程式會採用您在 區段中指定的 AuditUser
值來模擬 DBCC 活動,以讀取和稽核頁面的相關信息。 即使參數的值 UserCount
設定為 0
,也會發生驗證。
參數 | 預設值 | 說明 | 註解 |
---|---|---|---|
UserCount |
2 | 稽核線程數目 | 值不能超過下列值: CPUCount*1023-100 。所有用戶的總數也無法超過此值。 的值 0 表示您無法建立隨機存取使用者。 值 -1 表示您必須使用值的自動設定: min(CPUCount*2, 8) 。注意 SQL Server 系統可能有數千個工作階段。 大部分的會話沒有作用中的要求。 在針對 sys.dm_exec_requests DMV 的查詢中使用 函count(*) 式作為建立此測試參數值的基準。CPUCount 這裡是指 區段中參數CONFIG 的值CPUCount 。值 min(CPUCount*2, 8) 會導致和8 之間的CPUCount*2 值較小。 |
BuffersValidated |
64 | ||
DelayAfterCycles |
2 | 完成 BuffersValidated 循環數目之後,套用 AuditDelay 參數 | |
AuditDelay |
200 | 每個 DelayAfterCycles 作業之後要等候的毫秒數 |
ReadAheadUser 區段
SQLIOSim 公用程式會採用 區段中指定的 ReadAheadUser
值,以模擬 SQL Server 預先讀取活動。 SQL Server 利用預先讀取活動,將異步 I/O 功能最大化,並限制查詢延遲。
參數 | 預設值 | 說明 | 註解 |
---|---|---|---|
UserCount |
2 | 預先讀取線程的數目 | 值不能超過下列值: CPUCount*1023-100 。所有用戶的總數也無法超過此值。 的值 0 表示您無法建立隨機存取使用者。 值 -1 表示您必須使用下列值的自動設定: min(CPUCount*2, 8) 。注意 SQL Server 系統可能有數千個工作階段。 大部分的會話沒有作用中的要求。 在針對 sys.dm_exec_requests DMV 的查詢中使用 函count(*) 式作為建立此測試參數值的基準。CPUCount 這裡是指 CONFIG 區段中參數的值 CPUCount 。值 min(CPUCount*2, 8) 會導致和8 之間的CPUCount*2 值較小。 |
BuffersRAMin |
32 | 每個週期讀取的頁數下限 | 最小值為 0 。 最大值受限於系統記憶體。 |
BuffersRAMax |
64 | 每個週期要讀取的頁數上限 | SQL Server Enterprise 版本可以在單一要求中讀取最多 1,024 頁。 如果您在具有大量CPU、記憶體和磁碟資源的電腦上安裝SQL Server,建議您增加檔案大小和預先讀取大小。 |
DelayAfterCycles |
2 | RADelay 完成指定的循環數目之後套用 參數 |
|
RADelay |
200 | 每個 DelayAfterCycles 作業之後要等候的毫秒數 |
BulkUpdateUser 區段
SQLIOSim 公用程式會採用您在 區段中指定的 BulkUpdateUser
值來模擬大量作業,例如 SELECT...INTO
作業和 BULK INSERT
作業。
參數 | 預設值 | 說明 | 註解 |
---|---|---|---|
UserCount |
-1 | 線程數目BULK UPDATE |
值不能超過下列值: CPUCount*1023-100 值 -1 表示您必須使用下列值的自動設定: min(CPUCount*2, 8) 。注意 SQL Server 系統可能有數千個工作階段。 大部分的會話沒有作用中的要求。 在針對 sys.dm_exec_requests DMV 的查詢中使用 函count(*) 式作為建立此測試參數值的基準。CPUCount 這裡是指 區段中參數CONFIG 的值CPUCount 。值 min(CPUCount*2, 8) 會導致和8 之間的CPUCount*2 值較小。 |
BuffersBUMin |
64 | 每個週期要更新的頁數下限 | |
BuffersBUMax |
128 | 每個週期要更新的頁數上限 | 最小值為 0 。 最大值受限於系統記憶體。 |
DelayAfterCycles |
2 | BUDelay 完成指定的循環數目之後套用 參數 |
|
BUDelay |
10 | 每個 DelayAfterCycles 作業之後要等候的毫秒數 |
ShrinkUser 區段
SQLIOSim 公用程式會採用您在 區段中指定的 ShrinkUser
值來模擬 DBCC 壓縮作業。 SQLIOSim 公用程式也可以使用 ShrinkUser
區段讓檔案成長。
參數 | 預設值 | 說明 |
---|---|---|
MinShrinkInterval |
120 | 壓縮作業之間的最小間隔以秒為單位 |
MaxShrinkInterval |
600 | 壓縮作業之間的間隔上限,以秒為單位 |
MinExtends |
1 | SQLIOSim 公用程式將成長或壓縮檔案的最小增量數目 |
MaxExtends |
20 | SQLIOSim 公用程式將成長或壓縮檔案的最大增量數目 |
組態.ini檔案批注
組態.ini檔案中行開頭的分號字元(;)會導致該行視為單一批注。
檔案建立
SQLIOSim 公用程式會建立個別的數據檔和記錄檔,以模擬 SQL Server 在其數據文件和記錄檔中產生的 I/O 模式。 SQLIOSim 公用程式不會使用 SQL Server 引擎來執行壓力活動。 因此,您可以在安裝 SQL Server 之前,使用 SQLIOSim 公用程式來測試電腦。
當您執行 SQLIOSim 公用程式時,請確定您指定用於 SQL Server 資料庫檔案的相同檔案位置。 當您這樣做時,公用程式會模擬與 SQL Server 資料庫相同的 I/O 路徑。
您可以啟用現有測試檔案的壓縮或加密屬性。 您也可以為將建立測試檔案的現有目錄啟用這些屬性。 啟用這些屬性的對應選項位於 檔案或目錄的 [屬性 ] 對話框中。
根據預設,SQLIOSim 公用程式會建立具有 .mdx 和 .ldx 擴展名的測試檔案。 因此,這些檔案不會覆寫現有的數據和記錄檔。
警告
請勿指定實際的 SQL Server 資料庫檔案進行測試。 SQLIOSim 公用程式會以隨機測試模式覆寫數據,而實際的 SQL Server 資料將會遺失。
SQLIOSim 錯誤記錄檔和處理
SQLIOSim 公用程式會在下列其中一個位置中建立錯誤記錄檔:
- 您在記錄啟動參數中指定的位置
- 您在Sqliosim.cfg.ini檔案中
ErrorFile=
行中指定的位置
SQLIOSim.log.xml錯誤記錄檔包含執行的詳細數據。 這些詳細數據包括錯誤資訊。 請仔細檢閱記錄,以取得錯誤資訊和警告資訊。
注意
如果您在 SQLIOSim 公用程式中遇到錯誤,建議您要求硬體製造商協助判斷問題的根本原因。 問題也可能由設備驅動器、文件系統篩選驅動程式(例如防病毒軟體)或OS所造成。
多個複本
SQLIOSim 公用程式會容納多個檔案層級測試和多用戶層級測試。 SQLIOSim 公用程式不需要多個調用。 如果下列條件成立,您可以執行 SQLIOSim 公用程式的多個複本:
- 所有複本都會參考公用程式每個實例的唯一測試檔案。
MaxMemoryMB
每個實例的參數會針對每個實例有足夠的非重迭記憶體區域提供。
每個實例的參數總和 MaxMemoryMB
必須小於或等於物理記憶體總計。 某些測試階段,例如檢查點模擬,可能會耗用記憶體,而且可能會在執行多個複本時建立記憶體不足的情況。 如果您遇到記憶體不足的錯誤,您可以減少執行中的公用程式複本數目。