共用方式為


VHD 磁碟壓縮

VHD 磁碟壓縮是每次用戶註銷時執行的程式。壓縮程式的設計目的是根據預先定義的閾值,自動減少使用者容器的記憶體數量。 在註銷階段期間,FSLogix 會評估磁碟,以判斷是否應該執行磁碟壓縮。

注意

VHD 磁碟壓縮會影響配置檔和 ODFC 容器(包括 雲端快取 設定)

VHD 磁碟壓縮 預設為 [啟用 ]。 如果您想要停用它,請參閱 停用 VHD 磁碟壓縮

壓縮程式依賴 優化磁碟驅動器 服務 (defragsvc)。 此服務會使用 GetSupportedSize 方法的 SizeMin 參數,藉由查詢 MSFT_Partition API 來判斷支援的最小大小。 這項作業會考慮不可移動檔案的位置(也就是無法移動的檔案)。 如需詳細資訊,請參閱 MSFT_Partition 類別的 GetSupportedSize 方法。

重要

  • 如果優化磁碟驅動器服務的 StartupType (defragsvc) 設定為 Disabled,VHD 磁碟壓縮將無法查詢支援的大小下限,而且進程將不會執行。 不論服務狀態為 [執行中] 或 [已停止],服務 StartupType 都必須設定為 [手動] 或 [自動]。

  • 您必須使用動態擴充虛擬硬碟;固定大小的虛擬硬碟無法壓縮。

判斷 VHD 磁碟壓縮何時執行

FSLogix 會決定是否每次用戶註銷時執行壓縮程式。如果符合下列準則,VHD 磁碟壓縮會執行:

  • 容器的大小必須大於 1 GB(磁碟大小)。
  • 磁碟上取用的大小差異(C)和查詢的大小下限(B)。 差異必須大於或等於容器已取用大小的 20%。

差異的計算方式如下:

  • A - B = C
    • 如果 C ≥ (A x 0.2),壓縮就會執行。
    • 如果 C < (A x 0.2),壓縮不會執行。

範例案例

以下提供幾個範例:

  • 範例 1:容器的取用大小為 6GB。 當我們呼叫 GetSupportedSize 時,產生的最小大小為 2.5GB

    • 6 - 2.5 = 3.5 GB
    • 20% 的 6 GB = 1.2 GB
    • 3.5 GB 大於 1.2 GB,壓縮執行。
  • 範例 2:容器的取用大小為 12GB。 當我們呼叫 GetSupportedSize 時,產生的最小大小為 10GB

    • 12 - 10 = 2 GB
    • 20% 的 12 GB = 2.4 GB
    • 2 GB 小於 2.4 GB,壓縮不會執行。

範例數據表:

容器 固定/動態 已設定的大小 已取用的大小 支援的大小 壓縮嗎?
<username>profile_.vhdx 動態 30 GB 6 GB 2.5 GB Yes
<username>profile_.vhdx 動態 30 GB 12 GB 10 GB No
<username>profile_.vhdx 已修正 30 GB 30 GB N/A No

使用者體驗

壓縮執行時,使用者會看到等候 FSLogix Apps Services 一段時間的訊息。 根據要復原的空間,壓縮程式平均需要 20 到 30 秒的時間。 第一個精簡作業是最長的,且是以可復原的空間和其他計算資源因素為基礎。

後續註銷應該更快,因為壓縮的數據量應該會減少。 VHD 磁碟壓縮最多可以執行 5 分鐘。 如果達到此最大值,作業就會結束,然後繼續註銷。 在下一次註銷期間,作業將會從先前的狀態繼續執行。

Winlogon 事件

VHD 磁碟壓縮會在使用者註銷時運作,這是程式的一部分 Winlogon 。 每當進程造成註銷時間超過 60 秒時,進程 Winlogon 就會建立警告事件。 這些警告是正常且預期的。 壓縮程式可能會超過 60 秒,視 VHD(x) 的大小和要復原的空間而定。 臨界 Winlogon 值是固定值,無法變更。

請參閱 Winlogon (註銷) Log Analytics 查詢的延遲警告 ,以顯示超過 60 秒閾值及其持續時間的作業數目。

下一步