共用方式為


ScatterGather (SYSTEM)

此測試會使用 ReadFile/WriteFile/ReadFileScatter/WriteFileGather API,主要以異步方式驗證文件系統 I/O 可靠性案例。 HLK 測試會練習預先定義的自動化回歸變化。

測試詳細資料

   
規格
  • System.Fundamentals。儲存體 AndBoot.BootPerformance
平台
  • Windows 10 用戶端版本 (x86)
  • Windows 10 用戶端版本 (x64)
支援的版本
  • Windows 10
  • Windows 10 版本 1511
  • Windows 10 (版本 1607)
  • Windows 10 版本 1703
  • Windows 10 版本 1709
  • Windows 10 版本 1803
  • Windows 10 版本 1809
  • Windows 10 版本 1903
  • Windows 10 的下一個更新
預期的執行時間(以分鐘為單位) 240
類別 案例
逾時 (以分鐘為單位) 14400
需要重新啟動 false
需要特殊設定 false
類型 automatic

 

其他檔

此功能區域中的測試可能會有其他檔,包括必要條件、設定和疑難解答資訊,可在下列主題中找到:

執行測試

執行測試之前,請完成測試設定,如測試需求中所述: WDTF 系統基本概念測試必要條件

同時以多線程方式執行 I/O(寫入和讀取),利用 I/O 完成埠來完成 I/O。 它一開始會先設定檔案的 EOF,並排程 I/O 線程。 正在寫入檔案時,它會在預期零或位移計算值的地方執行在線驗證。 寫入整個檔案之後,它會執行檔案的完整驗證,如果遇到零或未預期的值,測試將會失敗。

疑難排解

如需 HLK 測試失敗的一般疑難解答,請參閱 針對 Windows HLK 測試失敗進行疑難解答。

如需疑難解答資訊,請參閱 針對系統基本概念測試進行疑難解答。

此測試會傳回 Pass 或 Fail。 若要檢閱測試詳細數據,請檢閱 Windows 硬體實驗室套件 (Windows HLK) Studio 的測試記錄檔。

詳細資訊

支援的測試模式:

我們預期大部分的用戶都會使用預先定義的回歸變化。

默認回歸 (預先定義的變化)和 壓力 表示某些類型的失敗,例如虛擬 Alloc 重試等。針對預設模式,如果使用者不想手動提供參數,則會管理大部分參數的 flagsauto 旗標。 此外 ,預設模式和壓力模式也支援定時器功能 。 對於回歸模式,有預先定義的定時器變化。

支援的讀取/寫入模式:

讀取/寫入模式:

  • RW(讀取、寫入)

  • RWG(讀取、寫入收集)

  • RSW(讀取散佈圖、寫入)

  • RSWG(讀取散佈圖、寫入收集)

  • RRW(隨機讀取、寫入)

  • RRWG(隨機讀取、寫入收集)

  • RWR(讀取、隨機寫入)

  • RSWR(讀取散佈圖、隨機寫入)

  • RRWR(隨機讀取、隨機寫入 - 大約 50% 散佈圖/收集) -> 預設值

  • RRWR7(隨機讀取、隨機寫入 - 大約 30% 散佈/收集)

  • RRWR3(隨機讀取、隨機寫入 - 大約 70% 散佈圖/收集

此外,測試也支援反向讀取和反向寫入。

I/O 節流機制:

支援 受控制 IO 要求的上限和較低閾值略過模式 也是可能的,基本上會以 I/O 爆出系統。

資料模式:

簡單位移計算的字母值。 不過,對於定時器變化,可能會有漏洞。

資料驗證模式:

支援在線 (同時驗證和寫入)、fullcheck(所有寫入完成之後),以及離線驗證模式。 所有這些模式都可以關閉/開啟。 如果關閉在線驗證,基本上只會在初始階段期間執行完整檢查。

在線和完整檢查之間的差異在於,只有在單一線程完成所有寫入之後,才會完成完整檢查,而在線驗證會在寫入期間和期間同時完成,而其預期為零或位移計算值,這與只有位移計算值以外的完整檢查不同。

命令使用方式

Command 描述

ScatterMultiThread.exe -default -rwmode:rw -iomode:sync

以預設檔案大小在同步模式中執行讀取寫入IO。

ScatterMultiThread.exe -default -rwmode:RSWG -RR -RER:2 -TESTPATH:d:\Scatter -FILESIZE:500m

在以隨機位移和反向讀取指定的testpath中執行500m檔案的完整散佈收集。

ScatterMultiThread.exe -default -rwmode:RRWR -FILESIZE:2g -IODIFFUPPERTHRESHOLD:500 -IODIFFLOWERTHRESHOLD:100

執行 50% 散佈圖收集 IO 2GB 檔案,其 I/O 上限和較低的閾值

ScatterMultiThread.exe -regression -regression:6

執行預先定義的回歸變化 6。

ScatterMultiThread.exe -stress -RWMODE:rrwr -THREADS:2 -BS:100k

使用 2 個讀取器和 2 個寫入器線程,以 100k/ 的 I/O 區塊大小執行散佈圖收集

ScatterMultiThread.exe -default -FILE:timer.dat -timer:19s -FILESIZE:5g -ONLINEVERIFY:FALSE

定時器模式 ReadWrite Unbuffered I/O,且沒有 OnlineVerify 模式。

ScatterMultiThread.exe -default -OFFLINEVERIFY -FILE:timer.dat -FULLCHECK:FALSE -ALLOWZERO4VERIFY

已停用 fullcheck 和 AllowZero4Verify 模式的上述變化離線驗證。

 

命令語法

命令選項 描述

ScatterMultiThread.exe

測試的命令行選項如下所列。

-help or /?

顯示說明。

-預設

使用命令行中的測試參數執行預設變化。

-應力

壓力模式。 重試記憶體配置失敗等。

-回歸

回歸模式。 執行預先定義的回歸模式。

-testpath

檔案的完整路徑。

預設值:CWD

-檔

testpath 中的檔案或檔案的完整路徑。

默認值:Scatter.dat

-filesize

以位元組為單位的檔案大小。 您也可以附加 k、m、g 或 t。

默認值:1m

-線程

獨佔讀取器和寫入器線程的數目。

預設值:2

-completionthreads

完成線程的數目。

預設值:處理器數目的兩倍

-rwmode

讀取/寫入模式:

  • RW(讀取、寫入)

  • RWG(讀取、寫入收集)

  • RSW(讀取散佈圖、寫入)

  • RSWG(讀取散佈圖、寫入收集)

  • RRW(隨機讀取、寫入)

  • RRWG(隨機讀取、寫入收集)

  • RWR(讀取、隨機寫入)

  • RSWR(讀取散佈圖、隨機寫入)

  • RRWR(隨機讀取、隨機寫入 - 大約 50% 散佈圖/收集) -> 預設

  • RRWR7(隨機讀取、隨機寫入 - 大約 30% 散佈/收集)

  • RRWR3(隨機讀取、隨機寫入 - 大約 70% 的散佈/收集

-iomode

sync 或 async

默認值:async

-flagsauto

TRUE 或 FALSE

默認值:TRUE

注意  

特定檔案旗標會根據情況自動管理

 

-ffnb

TRUE 或 FALSE

默認值:FALSE

注意  

在某些情況下,FILE_FLAG_NO_BUFFERING會自動開啟,例如散佈圖/收集。

 

-ffss

TRUE 或 FALSE

默認值:FALSE

注意  

在某些情況下,FILE_FLAG_SEQUENTIAL_SCAN會自動開啟,例如串行化 I/O。

 

-ffra

TRUE 或 FALSE

默認值:FALSE

注意  

在某些情況下,FILE_FLAG_RANDOM_ACCESS會自動開啟,例如隨機 I/O。

 

-ffwt

TRUE 或 FALSE

默認值:FALSE

注意  

除非手動指定,否則不會自動開啟FILE_FLAG_WRITE_THROUGH。

停用 FLAGSAUTO 旗標,以獨立管理檔案旗標和屬性。

FLAGSAUTO 行為會根據共用檔句柄或反向 I/O 等其他參數而變更。

如果文件系統不支援快取的 I/O 和 FFNB,或指定的檔案系統不支援 FFSS 和 FFRA 旗標,則 FFSS 和 FFRA 旗標沒有任何作用。

FFSS 和 FFRA 旗標是互斥的,無法合併為自敗。

 

-Bs

區塊大小以位元組為單位。 您可以附加 k、m、g、t。

預設值:64k

-旁路

略過 I/O 閾值等候。 這可以是TRUE或 FALSE。

默認值:FALSE

-nsegments

散佈圖/收集的區段陣列大小。

預設值:16

注意  

這個選項在特定情況下會自動更正散佈/收集/

 

-totalsleep

失敗虛擬配置或 I/O 閾值案例的總睡眠時間。

默認值:30 分鐘

-sleepint

失敗虛擬配置案例的迴圈睡眠間隔

預設值:2 分鐘

-iodifferupperthreshold

發出 I/O 要求上限。

預設值:1000

-iodifflowerthreshold

在 I/O 差異低於此數位之後,繼續要求繼續 I/O 的閾值較低。

默認值:100

注意  

此選項與略過模式互斥,如果略過模式開啟,則會忽略此選項。

 

-wfw

寫入器(WFW) 旗標會等候 WriterThreads 在發生任何讀取之前完成。 此選項可以是 true 或 false。

默認值:FALSE

-Rr

隨機位移讀取 (RR) 選項會讓 ReaderThreads 以隨機位移開始。 此值可以是 true 或 false。

默認值:TRUE

-烏爾曼

隨機位移寫入 (RW) 選項會讓 WriterThreads 從隨機位移開始。 此值可以是 false 的其中一個 true。

默認值:FALSE

-rer

從起始位移反向讀取。 此值可以是 0、1 或 2。

預設值:2

-rew

從起始位移反向寫入。 此值可以是 0、1 或 2。

預設值:0

注意  

針對 RER 和 REW 旗標,0 表示沒有逆轉,1 表示直接逆轉,2 表示隨機逆轉(不一定套用)。

針對 RER 和 REW 旗標,完整檔案 I/O 可能無法完成,而且報告的統計數據和結果可能不正確。

 

-計時 器

定時器模式(以秒為單位)。 您可以附加 s、m、h。

預設值:0

這會執行 I/O,直到定時器過期為止。

-timerloop

定時器循環間隔 (以秒為單位)。 您可以附加 s、m、h。

預設值:與定時器選項相同

注意  

定時器選項僅適用於發出要求,完成仍然會通過(沒有定時器適用於完成)。

 

-onlineverify

在在線模式中發出寫入要求之後,驗證檔案的內容。

默認值:TRUE

-offlineverify

重新執行測試,以離線模式驗證檔案的內容。

默認值:FALSE

-allowzero4verify

允許零成為完整驗證 (OFFLINE 或 ONLINE) 的一部分。

默認值:FALSE

-onlyzero4verify

允許零成為完整驗證(OFFLINE 或 ONLINE) 的一部分。

默認值:FALSE

-sharedfh

允許用於所有 I/O 的相同檔句柄。

默認值:FALSE

-回歸

回歸變化。 此值可以是 - 1 - 10 或 1001(參考所有變化)

預設值:0(無回歸)

-displayprogress

顯示 I/O 進度(以秒為單位),您可以附加 s、m、h、

默認值:2m

-fullcheck

在線或離線驗證之後的數據完整驗證。

預設值:True

-dbgcheck

在失敗時中斷為核心調試程式。 此值可以是 true 或 false。

預設值:True

-toleratesurpriseremove

請勿在 SurpriseRemove 失敗時中斷至核心調試程式。 此值可以是 true 或 false。

預設值:false

-toleraterepair

請勿在修復失敗時中斷至核心調試程式。 此值可以是 true 或 false。

預設值:false

-toleratefailio

請勿在 FailIO 失敗時中斷至核心調試程式。 此值可以是 true 或 false。

預設值:false

-exitonerror

失敗時結束。 此值可以是 true 或 false。

默認值:False

注意

   如需此測試的命令行說明,請輸入 /?

 

檔案清單

檔案 Location

ScatterMultiThread.exe

<[testbinroot]>\NTTest\BASETEST\core_file_services\NTFS\ScatterGather\

ntlog.dll

<[osbinroot]>\NTTest\CommonTest\NtLog\

ntlogger.ini

<[osbinroot]>\NTTest\CommonTest\NtLog\

stresslog.dll

<[osbinroot]>\basetest\core_file_services\shared_libs\

fbslog.dll

<[osbinroot]>\basetest\core_file_services\shared_libs\fbslog\

 

參數

參數名稱 參數描述
LLU_NetAccessOnly
TEST_PATH