原始產品版本:SQL Server
原始 KB 編號: 231619
總結
SQLIOSim 工具透過模擬 Microsoft SQL Server 的輸入輸出模式,對磁碟子系統執行可靠性與完整性壓力測試。 這些測試包括讀取、寫入、檢查點、備份、排序及預讀等活動。 在部署 SQL Server 到新硬體之前,請使用 SQLIOSim 驗證你的 I/O 子系統。 該工具獨立於 SQL Server 引擎運作,且不需 SQL Server 持續執行。
SQLIOSim 簡介
SQLIOSim 模擬 SQL Server 系統的讀寫模式(頁面讀取、檢查點、備份、排序、提前讀取),以協助識別潛在的 I/O 問題。 I/O 模擬測試的主要目標是在 SQL Server 開始使用前驗證底層 I/O 子系統的可靠性。 欲了解更多關於SQL Server I/O 基本原理的資訊,請參見 SQL Server I/O 基本原則。
SQLIOSim 不與 SQL Server 互動,也不要求 SQL Server 必須在執行。 大多數情況下,當 SQL Server 未執行時執行 SQLIOSim,以避免兩個應用程式間的 I/O 吞吐量競爭。
警告
在 SQLIOSim 測試中不要指向或使用實際的 SQL Server 資料庫檔案,因為工具會用隨機測試模式覆蓋檔案。
SQLIOSim 並不保證資料安全或完整性。 該工具提供系統環境的基線測試,並可能暴露潛在的資料完整性問題。
如需記錄和數據記憶體的詳細資訊,請參閱 描述記錄和數據儲存演算法,以擴充 SQL Server 中的數據可靠性。
如果你需要做效能基準測試並判斷 I/O 吞吐量容量,建議使用 Diskspd 工具。
Tip
在正式部署前,務必執行 SQLIOSim,以測試每個新的存儲配置。 此測試有助於確保系統即使存在快取層,仍尊重寫入順序與清洗語意。 這些層級包括控制器快取、韌體緩衝與 SAN 優化。
SQLIOSim 位置
SQLIOSim 先前曾作為獨立的下載套件提供。 自 Microsoft SQL Server 2008 起,SQLIOSim 包含在 SQL Server 產品安裝中。 安裝 SQL Server 後,你會在 SQL Server 安裝的 Binn資料夾中找到 SQLIOSim 工具。 使用此更新版本的工具來模擬磁碟子系統的 I/O 活動。
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 子系統,並驗證其可靠性。 為此,請從安裝 SQL Server 的電腦複製 SQLIOSim 檔案,並在安裝 SQL Server 前執行測試。 如果您打算使用預先設定的設定,請複製 SQLIOSim.com、 SQLIOSim.exe,以及選擇性地複製一或多個組態檔。 接著,在那台電腦上執行測試模擬。
如何使用 SQLIOSim
你執行 SQLIOSim 時,不需要 SQL Server 服務正在運行。 事實上,不要在 SQL Server 運行時同時執行 SQLIOSim,因為應用程式可能會爭奪 I/O 資源。
警告
為了避免遺失實際的 SQL Server 資料,測試時不要指定實際的 SQL Server 資料庫檔案。 SQLIOSim 工具會透過隨機測試模式覆蓋資料。
以下範例展示了如何利用圖形介面和命令列來執行 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 I/O 模擬,請選擇 模擬器>啟動。 或者,選擇 F12 或最左邊有綠色圓圈的按鈕。
等模擬結束後,再檢查輸出。
範例 2:使用命令行工具和組態檔
編輯 sqliosim.default.cfg.ini 檔案。 移除
File1和File2區段的註解,並將FileName的值改為新的 SQLIOSim 檔案。 例如:[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=FALSESQLIOSIM.COM 使用設定檔執行, C:\temp\sqliosimconfig\sqliosim.default.cfg.ini:
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 repo 下載各種測試的範例設定檔。
您不需要使用組態檔。 如果您沒有使用組態檔,所有參數都會採用預設值,但數據檔位置和記錄檔位置除外。 您必須使用下列其中一種方法來指定資料檔案位置和記錄檔位置:
- 使用 SQLIOSIM.COM 檔案中的命令行參數。
- 執行SQLIOSim.exe檔案之後,請使用 [檔案和組態] 對話框。
- 使用配置檔的 [<檔案>] 部分。
範例組態檔
使用這五個範例設定檔來進行自動化 SQLIOSim 執行。
| 範例檔案 | 描述 | 與預設組態檔不同的參數 |
|---|---|---|
| sqliosim.default.cfg.ini | ||
| sqliosim.hwcache.cfg.ini | - 最小化讀取次數 - 保持檔案小巧,以完整保留在記憶體中 - 沒有循序讀取 |
AuditUser 區段和 ReadAheadUser 區段:CacheHitRatio=10000UserCount=0 |
| sqliosim.nothrottle.cfg.ini | - 移除 I/O 節流 - 縮短等待增加 I/O 音量的時間 |
TargetIODuration=1000000AuditDelay=10RADelay=10 |
| sqliosim.seqwrites.cfg.ini | - 最小化讀取次數 - 保持檔案小巧,以完整保留在記憶體中 - 讓檔案無法縮減 - 沒有循序讀取 - 沒有隨機存取 - 大幅度更新大型區塊,不會有延遲 |
Shrinkable=FALSE針對 AuditUser、ReadAheadUser 和 RandomUser 區段: CacheHitRatio=10000ForceReadAhead=FALSEBuffersBUMin=600BuffersBUMax=1000BUDelay=1UserCount=0 |
| sqliosim.sparse.cfg.ini | - 僅使用32 MB記憶體 - 讓目標 I/O 持續時間足夠長,以啟用許多未完成的 I/O 請求 - 停用散佈/聚集 API,使其無法為每個 8 KB 頁面發送獨立的 I/O 請求 - 建立一個 1 GB 的不可縮減檔案 - 在檔案中建立一個不可縮減的次級 1 GB 稀疏串流 |
MaxMemoryMB=32TestCycles=3TestCycleDuration=600TargetIODuration=10000UseScatterGather=FALSE[File1]FileName=sqliosim.mdxInitialSize=1000 MaxSize=1000Increment=10Shrinkable=FALSELogFile=FALSESparse=FALSE[File2]FileName=sqliosim.ldxInitialSize=50MaxSize=50Increment=0Shrinkable=FALSELogFile=TRUESparse=FALSE[File3]FileName=sqliosim.mdx:replicaInitialSize=1000MaxSize=1000Increment=10Shrinkable=FALSELogFile=FALSESparse=TRUE |
參數值的注意事項
- 如果參數的名稱指出參數是比率或百分比,則參數的值會以百分比表示,或比例除以0.01。 例如,參數的值
CacheHitRatio是10 percent。 此值表示為1000,因為 10 除以 0.01 等於1000。 百分比參數的最大值為10000。 - 如果參數類型是數值,且你為參數指派非數值,SQLIOSim 工具會將參數設為
0。 - 如果參數類型是布林值,可以指派給參數的有效值是
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 |
是 | 允許關閉限制功能以發送大量 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 工具仍會發出讀取指令。 Microsoft SQL Server 支援已成功使用 true 設定來公開 I/O 問題。 |
DeleteFilesAtStartup |
true | 如果檔案存在,請在啟動時刪除檔案 | 一個檔案可以包含多個資料串流。 只有在File <N> FileName條目中指定的數據流會在檔案中被截斷。 如果指定預設數據流,則會刪除所有數據流。 |
DeleteFilesAtShutdown |
錯誤 | 測試完成後刪除檔案 | 一個檔案可以包含多個資料串流。 檔案中只有您在 File <N> FileName 項目中指定的數據流會被截斷。 若指定預設資料串流,SQLIOSim 工具會刪除所有資料串流。 |
StampFiles |
假 | 透過填充零來擴展檔案 | 如果檔案很大,這個過程可能會花很長時間。 如果你將此參數設為 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 |
假 | 表示是否應該在檔案上設定Sparse屬性 |
對於現有檔案,當你將參數設Sparse為 false 時,SQLIOSim 工具不會清除該Sparse屬性。SQL Server 2005 使用疏鬆檔案來支援快照集資料庫和次要 DBCC 數據流。 啟用稀疏檔案和資料流,然後執行測試。 注意 如果您為檔案設定設定 Sparse = true,請勿在 NoBuffering = false 區段中指定 config 。 如果你使用這兩種互相衝突的組合,可能會收到類似以下工具的錯誤訊息:錯誤:-=====Error: 0x80070467 錯誤文字:存取硬碟時,即使重試之後,磁碟作業也會失敗。 描述:C:\SQLIOSim.mdx 頁面上的緩衝區驗證失敗:28097 |
LogFile |
假 | 指出檔案是否包含使用者或事務歷史記錄數據 | 至少定義一個日誌檔。 |
RandomUser 區段
SQLIOSim 工具利用你在 RandomUser 區段中指定的值,模擬執行隨機查詢操作的 SQL Server 工作者,例如線上交易處理(OLTP)I/O 模式。
| 參數 | 預設值 | 描述 | 註解 |
|---|---|---|---|
UserCount |
-1 | 同時執行的隨機存取線程數目 | 值不能超過值: CPUCount*1023-100。所有用戶的總數也無法超過此值。 值為零 (0) 表示您無法建立隨機存取使用者。 值 -1 表示您必須使用值的自動設定: min(CPUCount*2, 8)。NOTE SQL Server系統可以有數千個會話。 大多數的會話沒有活躍的請求。 在查詢c0時,使用c1函式,針對動態管理檢視(DMV)作為建立此測試參數值的基準。 CPUCount在此指的是CPUCount參數在CONFIG部分中的值。值 min(CPUCount*2, 8)會導致和CPUCount*2之間的8值較小。 |
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)。NOTE 一個SQL Server系統可能有數千個會話。 大部分的會話沒有活躍的請求。 在對 sys.dm_exec_requests DMV 的查詢中,使用 count(*) 函數作為確立測試參數值的基準。CPUCount在CONFIG區段中指的是CPUCount參數的值。該 min(CPUCount*2, 8) 值產生介於 CPUCount*2 與 8之間的較小值。 |
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 系統可能有數千連線。 大部分的會話沒有作用中的要求。 在對 count(*) DMV 的查詢中使用 sys.dm_exec_requests 函數作為確立此測試參數值的基準。CPUCount 這裡是指 CONFIG 區段中參數的值 CPUCount 。值 min(CPUCount*2, 8)會導致和CPUCount*2之間的8值較小。 |
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)會導致和CPUCount*2之間的8值較小。 |
BuffersBUMin |
64 | 每個週期要更新的頁數下限 | |
BuffersBUMax |
128 | 每個週期要更新的頁數上限 | 最小值為 0。 最大值受限於系統記憶體。 |
DelayAfterCycles |
2 | 在完成指定的循環數目之後套用BUDelay參數 |
|
BUDelay |
10 | 每個 DelayAfterCycles 作業之後要等候的毫秒數 |
ShrinkUser 區段
SQLIOSim 工具會取你在模擬 DBCC 縮減操作的 ShrinkUser 區段中指定的值。 SQLIOSim 工具也能利用該 ShrinkUser 區段來讓檔案成長。
| 參數 | 預設值 | 描述 |
|---|---|---|
MinShrinkInterval |
120 | 壓縮作業之間的最小間隔以秒為單位 |
MaxShrinkInterval |
600 | 壓縮作業之間的間隔上限,以秒為單位 |
MinExtends |
1 | SQLIOSim 工具增加或縮減檔案的最小增量數 |
MaxExtends |
20 | SQLIOSim 工具最大可增加或縮減檔案的增量數量 |
組態.ini檔案註解
組態.ini檔案中行開頭的分號字元(;)會導致該行視為單一批注。
檔案建立
SQLIOSim 工具會建立獨立的資料檔案與日誌檔案,以模擬 SQL Server 在資料檔案與日誌檔案中產生的 I/O 模式。 SQLIOSim 工具並未使用 SQL Server 引擎來執行壓力活動。 因此,你可以使用 SQLIOSim 工具在安裝 SQL Server 前測試電腦。
執行 SQLIOSim 工具時,請確保你指定與 SQL Server 資料庫檔案相同的檔案位置。 當你這麼做時,工具會模擬出與 SQL Server 資料庫相同的 I/O 路徑。
您可以啟用現有測試檔案的壓縮或加密屬性。 你也可以為現有建立測試檔案的目錄啟用這些屬性。 啟用這些屬性的對應選項位於 檔案或目錄的 [屬性 ] 對話框中。
預設情況下,SQLIOSim 工具會建立具有 .mdx 和 .ldx 副檔名的測試檔案。 因此,這些檔案不會覆蓋現有的資料和日誌檔案。
警告
為了避免遺失實際的 SQL Server 資料,測試時不要指定實際的 SQL Server 資料庫檔案。 SQLIOSim 工具會透過隨機測試模式覆蓋資料。
SQLIOSim 錯誤記錄檔和處理
SQLIOSim 工具會在以下其中一個位置建立錯誤日誌檔案:
- 您在記錄啟動參數中指定的位置
- 您在Sqliosim.cfg.ini檔案中
ErrorFile=行中指定的位置
SQLIOSim.log.xml錯誤記錄檔包含執行的詳細數據。 這些詳細數據包括錯誤資訊。 請仔細檢閱記錄,以取得錯誤資訊和警告資訊。
注意
如果您在 SQLIOSim 工具中遇到錯誤,請向硬體製造商詢問問題根源。 問題也可能是裝置驅動程式、檔案系統過濾驅動程式(例如防毒軟體)或作業系統所致。
多個複本
SQLIOSim 工具支援多檔案層級測試及多使用者層級測試。 SQLIOSim 工具不需要多次調用。 如果符合以下條件,你可以執行多個 SQLIOSim 工具的副本:
- 所有副本都參考工具每個實例專屬的唯一測試檔案。
-
MaxMemoryMB每個實例的參數提供一個不重疊的記憶體區域,足夠滿足每個實例的需求。
每個實例的參數總和 MaxMemoryMB 必須小於或等於物理記憶體總計。 某些測試階段,如檢查點模擬,可能佔用記憶體,且在執行多個副本時可能產生記憶體不足的狀況。 如果遇到記憶體不足錯誤,請減少執行的工具副本數量。