共用方式為


NVMe 解除分配測試 (標誌)

此測試會檢查 NVMe 控制器磁碟驅動器上解除分配命令的規格合規性。

測試詳細資料

   
規格
  • 裝置。儲存體。ControllerDrive.NVMe.BasicFunction
平台
  • Windows 10 用戶端版本 (x86)
  • Windows 10 用戶端版本 (x64)
  • Windows Server 2016 (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 的下一個更新
預期的執行時間(以分鐘為單位) 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 儲存體 驅動器號