共用方式為


使用 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.comSQLIOSim.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.comSQLIOSim.exe,以及選擇性地複製一或多個組態檔。 然後在該計算機上執行測試模擬。

如何使用 SQLIOSim

當您執行 SQLIOSim 時,不需要執行 SQL Server 服務。 事實上,建議您不要在 SQLIOSim 執行時執行 SQL Server,因為它們可以競爭 I/O 資源。

警告

請勿指定實際的 SQL Server 資料庫檔案進行測試。 SQLIOSim 公用程式會以隨機測試模式覆寫數據,而實際的 SQL Server 資料將會遺失。

接下來的幾個範例說明如何使用 GUI 和命令行執行 SQLIOSim。

範例 1:使用 GUI

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

  2. 啟動SQLIOSIM.EXE應用程式。 您可以看到 [ 檔案和組態 ] 視窗,其中包含一些預設設定。 您可以修改這些設定,以符合您的設定需求。

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

  3. 反白顯示清單中的第一個 mdx 檔案 C:\temp\sqliosim\sqliosim.mdx 。 這個檔案相當於數據檔。

  4. 變更檔案的位置、大小、大小上限或遞增,以修改檔案設定。 當您想要模擬資料檔時,請取消核取記錄檔。 然後選取 [ 套用] 按鈕。

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

    此範例顯示檔案的位置已變更為 D:\temp\sqliosim\sqliosim.mdx,其大小設定 為 2048 MB,其大小上限設定 為 4096 MB,且其增量大小設定 為 64 MB。

  5. 使用 ldx 後綴修改第二個檔案。 這個檔案代表事務歷史記錄檔的對等專案。 請務必保留 [記錄檔 ] 複選框。 完成時,選取套用

    記錄檔組態的螢幕快照。

  6. 您可以選取 表格式方格內畫面中央的 [新增檔案 ] 選項,將更多檔案新增至清單。 選取 [ 新增檔案] 之後,您可以輸入檔案位置並挑選其餘的設定。 別忘了選取 [ 套用]。 以下是範例:

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

  7. 一旦您滿意您的設定,請選取 [ 確定 ] 按鈕。

  8. 選取 [模擬器>開始] 以執行 SQL IO 模擬。 或者,您也可以選取 F12 或最左邊的按鈕,其內有綠色圓圈。

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

  9. 等候模擬完成並檢查輸出。

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

  1. 拿掉 和 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
    
  2. 使用組態檔 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 設定主要執行的持續時間。 此值會排除準備階段和驗證階段。
-sizeMB 以 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

針對 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
  • 如果參數型態為 Boolean,您可以指定參數 true 的有效值為和 false。 此外,這些值會區分大小寫。 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 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 使用 ReadScatterWriteGather 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 必須小於或等於物理記憶體總計。 某些測試階段,例如檢查點模擬,可能會耗用記憶體,而且可能會在執行多個複本時建立記憶體不足的情況。 如果您遇到記憶體不足的錯誤,您可以減少執行中的公用程式複本數目。

參考資料