使用 SQLIOSim 公用程式來模擬磁碟子系統上的 SQL Server 活動
本文說明如何使用 SQLIOSim 公用程式在磁碟子系統上執行壓力測試,以模擬 SQL Server 活動。
原始產品版本: SQL S
原始 KB 編號: 231619
簡介
本文說明 SQLIOSim 工具。 您可以使用 SQLIOSim,在 SQL Server 使用的磁碟子系統上執行可靠性和完整性測試。 這些 SQLIOSim 測試會模擬 Microsoft SQL Server 執行的讀取、寫入、檢查點、備份、排序和預先讀取活動。 如需 SQL Server I/O 模式的詳細資訊,請參閱第 2 章 SQL Server I/O 基本概念。 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 公用程式會取代先前稱為 SQL70IOStress 公用程式的 SQLIOStress 公用程式。
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:使用命令行工具和組態檔
拿掉和 區段的批注,並將值修改為
File1
File2
新的 SQLIOSim 檔案,以修改FileName
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 的檔案,並在) 5 分鐘 (執行測試 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
M b |
將數據檔的初始大小設定為 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 區段中指定的值,以建立全域測試行為。
參數 | 預設值 | 描述 | Comments |
---|---|---|---|
ErrorFile |
sqliosim.log.xml | XML 類型記錄檔的名稱 | |
CPUCount |
計算機上的CPU數目 | 要建立的邏輯 CPU 數目 | 最大值為 64 個 CPU。 |
Affinity |
0 | 要套用至邏輯 CPU 的實體 CPU 親和性遮罩 | 同質遮罩應該在使用中的CPU遮罩內。 的值表示將使用所有可用的 0 CPU。 |
MaxMemoryMB |
SQLIOSim 公用程序啟動時可用的物理記憶體 | 以 MB 為單位的緩衝池大小 | 此值不能超過計算機上的物理記憶體總數。 |
StopOnError |
真 | 發生第一個錯誤時停止模擬 | |
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 |
真 | 使用選項FILE_FLAG_NO_BUFFERING |
SQL Server 使用 FILE_FLAG_NO_BUFFERING == true 開啟資料庫檔案。 某些公用程式和服務,例如 Analysis Services,會使用 FILE_FLAG_NO_BUFFERING == false 。 若要完整測試伺服器,請針對每個設定執行一個測試。 |
WriteThrough |
真 | 使用選項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 |
真 | 使用 ReadScatter 或 WriteGather API |
勾選這個參數設定為 true ,參數 NoBuffering 也會設定為 true 。SQL Server 會針對大部分的 I/O 要求使用散佈/收集 I/O。 |
ForceReadAhead |
真 | 即使數據已讀取,仍執行預先讀取作業 | 即使數據頁已經在緩衝池中,SQLIOSim 公用程式還是會發出讀取命令。 Microsoft SQL Server 支援已成功使用 true 設定來公開 I/O 問題。 |
DeleteFilesAtStartup |
真 | 如果檔案存在,請在啟動時刪除檔案 | 檔案可能包含多個數據流。 檔案中只會截斷專案中 File <N> FileName 指定的數據流。 如果指定預設數據流,則會刪除所有數據流。 |
DeleteFilesAtShutdown |
假 | 測試完成後刪除檔案 | 檔案可能包含多個數據流。 檔案中只會截斷您在專案中 File <N> FileName 指定的數據流。 如果指定預設數據流,SQLIOSim 公用程式會刪除所有數據流。 |
StampFiles |
假 | 藉由戳記零來展開檔案 | 如果檔案很大,此程式可能需要很長的時間。 如果您將此參數設定為 false,SQLIOSim 公用程式會藉由設定有效的數據標記來擴充檔案。 SQL Server 2005 使用數據檔的立即檔案初始化功能。 如果數據檔是記錄檔,或未啟用立即檔案初始化,SQL Server 執行零戳記。 SQL Server 2000 之前的 SQL Server 版本一律會執行零戳記。 您應該在測試期間切換 參數的 StampFiles 值,以確保立即檔案初始化和零戳記都正常運作。 |
檔案<N> 區段
SQLIOSim 公用程式的設計目的是允許多個檔案測試。 針對測試中的每個檔案,[File2]
區File<N>
段會表示為 [File1]
。
參數 | 預設值 | 描述 | Comments |
---|---|---|---|
FileName |
沒有預設值 | 檔名和路徑 | 參數 FileName 可以是長路徑或 UNC 路徑。 它也可以包含次要數據流名稱和類型。 例如, FileName 參數可能會設定為 file.mdf:stream2 。注意在 2005 SQL Server,DBCC 作業會使用數據流。 建議您執行串流測試。 |
InitialSize |
沒有預設值 | 以 MB 為單位的初始大小 | 如果現有的檔案大於為 參數指定的 InitialSize 值,SQLIOSim 公用程式就不會壓縮現有的檔案。 如果現有的檔案較小,SQLIOSim 公用程式會展開現有的檔案。 |
MaxSize |
沒有預設值 | 大小上限為 MB | 檔案不能大於您為 參數指定的 MaxSize 值。 |
Increment |
0 | 以 MB 為單位的大小,檔案會隨之成長或縮小。 如需詳細資訊,請參 ShrinkUser 閱本文的 一節。 |
SQLIOSim 公用程式會在啟動時調整 Increment 參數,以建立情況: Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles 。如果的 Increment 值為 0 ,SQLIOSim 公用程式會將檔案設定為不可壓縮。 |
Shrinkable |
假 | 指出檔案是否可以壓縮或展開 | 如果您將 參數設定 Increment 為 0 ,則會將檔案設定為不可壓縮。 在這裡情況下,您必須將 參數設定 Shrinkable 為 false 。 如果您將 參數設定 Increment 為 以外的 0 值,則會將檔案設定為可壓縮。 在這裡情況下,您必須將 參數設定 Shrinkable 為 true 。 |
Sparse |
假 | 指出是否應在檔案上設定疏鬆屬性 | 針對現有的檔案,當您將 參數設定 Sparse 為 false 時,SQLIOSim 公用程式不會清除疏鬆屬性。SQL Server 2005 使用疏鬆檔案來支援快照集資料庫和次要 DBCC 數據流。 建議您同時啟用疏鬆檔案和數據流,然後執行測試階段。 注意如果您為檔案設定設定 Sparse = true ,請勿在 區段中config 指定 NoBuffering = false 。 如果您使用這兩個衝突的組合,您可能會從工具收到類似下列的錯誤:Error:-=====Error: 0x80070467 錯誤文字:存取硬碟時,磁碟作業失敗,即使在重試之後也一樣。 描述:C:\SQLIOSim.mdx 頁面上的緩衝區驗證失敗:28097 |
LogFile |
假 | 指出檔案是否包含使用者或事務歷史記錄數據 | 您應該定義至少一個記錄檔。 |
RandomUser 區段
SQLIOSim 公用程式會採用您在 區段中指定的RandomUser
值來模擬執行隨機查詢作業的 SQL Server 背景工作角色,例如在線事務處理 (OLTP) I/O 模式。
參數 | 預設值 | 描述 | Comments |
---|---|---|---|
UserCount |
-1 | 同時執行的隨機存取線程數目 | 值不能超過值: CPUCount*1023-100 。所有用戶的總數也不能超過此值。 值為零 (0) 表示您無法建立隨機存取使用者。 的 -1 值表示您必須使用值的自動設定: min(CPUCount*2, 8) 。注意SQL Server 系統可能會有數千個會話。 大部分的會話沒有作用中要求。 count(*) 在查詢中針對sys.dm_exec_requests 動態管理檢視使用 函式, (DMV) 作為建立此測試參數值的基準。CPUCount 這裡指的是 區段中 參數的CONFIG 值CPUCount 。值 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
,也會發生驗證。
參數 | 預設值 | 描述 | Comments |
---|---|---|---|
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 值變小。 |
BuffersValidated |
64 | ||
DelayAfterCycles |
2 | 在 BuffersValidated 週期數目完成之後套用 AuditDelay 參數 | |
AuditDelay |
200 | 每個 DelayAfterCycles 作業之後要等候的毫秒數 |
ReadAheadUser 區段
SQLIOSim 公用程式會採用 區段中指定的ReadAheadUser
值來模擬 SQL Server 讀取前置活動。 SQL Server 利用預先讀取活動來最大化異步 I/O 功能,並限制查詢延遲。
參數 | 預設值 | 描述 | Comments |
---|---|---|---|
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
作業。
參數 | 預設值 | 描述 | Comments |
---|---|---|---|
UserCount |
-1 | 線程數 BULK UPDATE 目 |
值不能超過下列值: CPUCount*1023-100 的 -1 值表示您必須使用下列值的自動設定: min(CPUCount*2, 8) 。注意SQL Server 系統可能會有數千個會話。 大部分的會話沒有作用中要求。 count(*) 在對 DMV 的sys.dm_exec_requests 查詢中使用 函式,作為建立此測試參數值的基準。CPUCount 這裡指的是 區段中 參數的CONFIG 值CPUCount 。值 min(CPUCount*2, 8) 會導致和之間的CPUCount*2 8 值變小。 |
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 引擎來執行壓力活動。 因此,您可以先使用 SQLIOSim 公用程式來測試計算機,再安裝 SQL Server。
當您執行 SQLIOSim 公用程式時,請確定您指定的檔案位置與您用於 SQL Server 資料庫檔案的檔案位置相同。 當您這樣做時,公用程式會模擬與 SQL Server 資料庫相同的 I/O 路徑。
您可以啟用現有測試檔案的壓縮或加密屬性。 您也可以針對將建立測試檔案的現有目錄啟用這些屬性。 啟用這些屬性的對應選項位於檔案或目錄的 [屬性] 對話框中。
根據預設,SQLIOSim 公用程式會建立擴展名為 .mdx 和 .ldx 的測試檔案。 因此,這些檔案不會覆寫現有的數據和記錄檔。
警告
請勿指定用於測試的實際 SQL Server 資料庫檔案。 SQLIOSim 公用程式會以隨機測試模式覆寫數據,而實際 SQL Server 數據將會遺失。
SQLIOSim 錯誤記錄檔和處理
SQLIOSim 公用程式會在下列其中一個位置建立錯誤記錄檔:
- 您在記錄啟動參數中指定的位置
- 您在
ErrorFile=
檔案 Sqliosim.cfg.ini行中指定的位置
SQLIOSim.log.xml 錯誤記錄檔包含執行的詳細數據。 這些詳細數據包括錯誤資訊。 請仔細檢閱記錄,以取得錯誤資訊和警告資訊。
注意事項
如果您在 SQLIOSim 公用程式中遇到錯誤,建議您要求硬體製造商協助判斷問題的根本原因。 此問題也可能由設備驅動器、文件系統篩選器驅動程式 (例如,防病毒軟體) 或操作系統所造成。
多個複本
SQLIOSim 公用程式可容納多個檔案層級測試和多用戶層級測試。 SQLIOSim 公用程式不需要多次叫用。 如果下列條件成立,您可以執行多個 SQLIOSim 公用程式複本:
- 所有複本都會參考每個公用程序實例的唯一測試檔案。
-
MaxMemoryMB
每個實例的 參數會提供一個對每個實例而言都足夠且不重疊的記憶體區域。
每個實例的 MaxMemoryMB
參數總和必須小於或等於物理記憶體總計。 某些測試階段,例如檢查點模擬,可能會耗用大量記憶體,而且可能會在您執行多個復本時建立記憶體不足的情況。 如果您遇到記憶體不足的錯誤,您可以減少執行中的公用程式複本數目。