使用 SQLIOSim 公用程式來模擬磁碟子系統上的 SQL Server 活動

原始產品版本: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.comSQLIOSim.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.comSQLIOSim.exe,以及選擇性地複製一或多個組態檔。 接著,在那台電腦上執行測試模擬。

如何使用 SQLIOSim

你執行 SQLIOSim 時,不需要 SQL Server 服務正在運行。 事實上,不要在 SQL Server 運行時同時執行 SQLIOSim,因為應用程式可能會爭奪 I/O 資源。

警告

為了避免遺失實際的 SQL Server 資料,測試時不要指定實際的 SQL Server 資料庫檔案。 SQLIOSim 工具會透過隨機測試模式覆蓋資料。

以下範例展示了如何利用圖形介面和命令列來執行 SQLIOSim。

範例 1:使用 GUI

  1. 移至 C:\Program Files\Microsoft SQL Server\MSSQLXX。<InstanceName>\MSSQL\Binn

  2. 啟動SQLIOSIM.EXE應用程式。

  3. 檔案與設定 視窗裡找預設設定,可以根據你的設定需求調整。

    顯示檔案組態的螢幕快照。

  4. 選擇列表中的第一個 mdx 檔案, C:\temp\sqliosim\sqliosim.mdx。 這個檔案相當於數據檔。

  5. 更改檔案設定,例如檔案位置、大小、最大大小或增量。 保持 日誌檔案 選項未關閉,因為你想模擬一個資料檔案。 然後,選取 [ 套用]。

    顯示資料檔案組態的螢幕快照。

    範例顯示檔案位置改為 D:\temp\sqliosim\sqliosim.mdx,大小設為 2048 MB,最大大小設為 4096 MB,遞增大小設為 64 MB。

  6. 更換第二個檔案,也就是帶有 ldx 後綴的那個。 這個檔案代表等同於交易日誌檔的檔案。 請確保 日誌檔案 選項持續被選中。 完成後,選取 [套用]。

    記錄檔組態的螢幕快照。

  7. 在表格格子中,選擇螢幕中央 的新檔案 選項,新增更多檔案到清單中。 輸入檔案位置,然後設定剩餘選項。 完成後,選取 [套用]。 以下是範例。

    新增測試檔案的螢幕快照。

  8. 當你對設定感到滿意後,選擇 確定

  9. 要執行 SQL I/O 模擬,請選擇 模擬器>啟動。 或者,選擇 F12 或最左邊有綠色圓圈的按鈕。

    顯示執行中 SQLIOSim 的螢幕快照。

  10. 等模擬結束後,再檢查輸出。

範例 2:使用命令行工具和組態檔

  1. 編輯 sqliosim.default.cfg.ini 檔案。 移除 File1File2 區段的註解,並將 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=FALSE
    
  2. SQLIOSIM.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=10000
UserCount=0
sqliosim.nothrottle.cfg.ini - 移除 I/O 節流

- 縮短等待增加 I/O 音量的時間
TargetIODuration=1000000
AuditDelay=10
RADelay=10
sqliosim.seqwrites.cfg.ini - 最小化讀取次數

- 保持檔案小巧,以完整保留在記憶體中

- 讓檔案無法縮減

- 沒有循序讀取

- 沒有隨機存取

- 大幅度更新大型區塊,不會有延遲
Shrinkable=FALSE

針對 AuditUserReadAheadUser 和 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。 例如,參數的值 CacheHitRatio10 percent。 此值表示為 1000 ,因為 10 除以 0.01 等於 1000。 百分比參數的最大值為 10000
  • 如果參數類型是數值,且你為參數指派非數值,SQLIOSim 工具會將參數設為 0
  • 如果參數類型是布林值,可以指派給參數的有效值是 truefalse。 此外,這些值會區分大小寫。 SQLIOSim 工具會忽略任何無效值。
  • 如果一組參數表示最小值和最大值,則最小值不得超過最大值。 例如,參數的值 MinIOChainLength 不得大於 參數的值 MaxIOChainLength
  • 如果參數顯示頁面數量,SQLIOSim 工具會檢查你指派給該參數的值與 SQLIOSim 工具處理的檔案。 SQLIOSim 工具會進行此檢查,以確保頁面數不會超過檔案大小。

組態檔區段

設定檔包含數個區塊:

每個配置區段將在以下章節中說明。

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 使用 ReadScatterWriteGather 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(*) 函數作為確立測試參數值的基準。

CPUCountCONFIG區段中指的是CPUCount參數的值。

min(CPUCount*2, 8) 值產生介於 CPUCount*28之間的較小值。
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 必須小於或等於物理記憶體總計。 某些測試階段,如檢查點模擬,可能佔用記憶體,且在執行多個副本時可能產生記憶體不足的狀況。 如果遇到記憶體不足錯誤,請減少執行的工具副本數量。