NVMe 解除分配測試 (標誌)
此測試會檢查 NVMe 控制器磁碟驅動器上解除分配命令的規格合規性。
測試詳細資料
規格 |
|
平台 |
|
支援的版本 |
|
預期的執行時間(以分鐘為單位) | 2 |
類別 | 部署 |
逾時 (以分鐘為單位) | 120 |
需要重新啟動 | false |
需要特殊設定 | false |
類型 | automatic |
其他檔
此功能區域中的測試可能會有其他檔,包括必要條件、設定和疑難解答資訊,可在下列主題中找到:
執行測試
執行測試之前,請完成測試設定,如測試需求: 硬碟測試必要條件中所述。
測試需要已連線 NVMe 控制器磁碟驅動器。 磁碟驅動器也必須滿足下列需求:
磁碟驅動器應該是非開機磁碟驅動器。 測試具有破壞性。 它會準備磁碟,並針對測試使用正確的磁碟分區和格式設定。
磁碟驅動器必須支援 Deallocate (Trim/Unmap/Discard) 命令。 測試會使用 DATA SET MANAGEMENT Trim 命令來傳送取消分配命令。
請確定有個別的磁碟驅動器可用做為記錄器磁碟驅動器。 測試會自動挑選記錄磁碟驅動器。 請務必將標誌測試外部磁碟驅動器上發生的活動量降到最低。 由於這是效能測試,因此外部活動可能會影響結果。
疑難排解
如需 HLK 測試失敗的一般疑難解答,請參閱 針對 Windows HLK 測試失敗進行疑難解答。
檢查 WTT 追蹤
檢視執行修剪效能測試的工作記錄。
開啟記錄檔 TrimPerf.wtl。
檢查可能解決問題的訊息。
複製 .wtl 記錄檔。 這是 WTT 追蹤一節中所述的 WTT 追蹤。
檢查啟動的命令結果
流覽修剪效能測試的作業記錄 (標誌)。
開啟 LaunchCommand.result。
如果錯誤與啟動進程有關,請判斷logman或 tracerpt 失敗的原因。
找不到計量
測試取決於已啟用 Storport ETW 追蹤,以取得命令完成計量。 如需啟用此追蹤的詳細資訊,請參閱 ETW 追蹤一節。
請確定目前沒有其他 Storport ETW 追蹤正在記錄。 一次只能有一個 Storport ETW 追蹤作用中。
如果您收到錯誤訊息「試用產品不支援 trim/unmap/deallocate/discard」,請嘗試下列動作:
請檢查 NVMe 磁碟驅動器,確定 VPD B2h 頁面的 LBPU 位已設定為一個。
嘗試透過 DATA SET MANAGEMENT 的 Trim 命令傳送 Deallocate 命令。
再次執行測試。
測試失敗,並出現「不相符」錯誤
測試會向下傳送 Deallocate 命令,並驗證已解除分配區域中的內容。 它會檢查下列三個案例。 如果全部失敗,則會報告錯誤。
先前的數據:解除分配命令未對該區域執行任何動作。
所有 0x00s:Deallocate 命令會將所有 0x00s 寫入區域。
所有 0xFF:Deallocate 命令會將所有 0xFF 寫入區域。
測試會列印一個違規的位置。 檢查違規位移時,請使用列印在記錄檔中的位移加上違規的位元組位移。
例如,在記錄檔中,它會列印:
檢查先前的數據:位元組 X 不符;預期: 0x3D, 實際: 0xFF
修剪驗證檢查失敗,位移 Y,長度 Z
然後違規位元組的位移為 X + Y(以位元組為單位)。
測試失敗,並出現「找到重設事件」
解除分配命令不應該造成磁碟重設事件。 如果發生這類錯誤,請檢查 NVMe 解除分配命令的實作。
如果您要執行特定測試案例來偵錯失敗,您可以嘗試下列命令列選項:
顯示所有含數字的測試案例:TrimPerf.exe /DriveNumber [儲存體 DriveNumber] /LogDriveLetter [LoggerDriveLetter]: /DeviceType NVMe /Scenario Compliance /PrintTestCaseName
依測試案例編號執行特定測試案例:TrimPerf.exe /DriveNumber [儲存體 DriveNumber] /LogDriveLetter [LoggerDriveLetter]: /Scenario Compliance /Precondition F /TestCase [TestCaseNumber]
如果您想要更快速地偵錯失敗,請嘗試停用前置條件設定(填滿磁碟驅動器到 90% 完整,需要很長的時間),方法是新增 /Precondition F 參數,如下所示:
- TrimPerf.exe /DriveNumber [儲存體 DriveNumber] /LogDriveLetter [LoggerDriveLetter]: /DeviceType NVMe /Scenario Complaince /DiskSize 0 /Cooldown 2 /前置條件 F
如需詳細資訊,請參閱針對 Device.儲存體 進行疑難解答測試。
詳細資訊
測試會評估下列計量:
解除分配命令
所有解除分配命令都應該寫入所有0x00或所有0xFF,或已解除分配區域中先前的數據。
解除分配命令不應該引發磁碟重設事件。
IO 命令(在不同區域同時傳送解除分配)
- 解除分配命令不應影響讀取/寫入作業的正確性。
手動重現步驟
開啟註冊表編輯器並流覽至下列路徑:HKEY_LOCAL_MACHINE - SYSTEM -> CurrentControlSet -> Enum-> SCSI -> Disk&Ven_[未受測的 NVMe 磁碟驅動器名稱] -> [裝置實例路徑]> - 裝置參數 -> Storport>
以滑鼠右鍵按兩下 [Storport],按兩下 [新增],然後按兩下 [DWORD][32 位] 值。
將索引鍵命名為 EnableLogoETW,並將值設定為 1。
將測試中的磁碟驅動器插入系統,或重新啟動電腦以啟用登錄機碼。
將 TrimPerf.exe、EtwProcessor.dll、Wex.Common.dll 和 Wex.Communication.dll 檔案複製到本機計算機。
執行命令行。
命令語法
Command | 描述 |
---|---|
TrimPerf.exe /DriveNumber [儲存體 DriveNumber] /LogDriveLetter [LogDriveLetter]: /DeviceType StorConsumer /Scenario Performance /DiskSize 0 /Cooldown 2 |
|
執行測試。 |
注意
如需此測試二進位檔的命令行說明,請輸入 /h。
檔案清單
檔案 | Location |
---|---|
TrimPerf.exe |
<[testbinroot]>\nttest\driverstest\storage\wdk\ |
Etwprocessor.dll |
<[taefbinroot]>\ |
Wex.common.dll |
<[taefbinroot]>\ |
Wex.communication.dll |
<[taefbinroot]>\ |
參數
參數名稱 | 參數描述 |
---|---|
WDKDeviceID | 要測試之裝置的實例路徑。 |
LLU_NetAccessOnly | 用來存取測試檔案共享的用戶帳戶。 |
LLU_Lcl管理員 Usr | 用於執行測試的用戶帳戶。 |
破壞性 | (0,1) 0=被動,1=破壞性 |
儲存體 DriveNumber | 儲存體 驅動器號 |