共用方式為


使用 CSV 記憶體內部讀取快取

適用於:Azure Stack HCI 版本 22H2 和 21H2;Windows Server 2022、Windows Server 2019、Windows Server 2016

本主題描述如何透過使用系統記憶體來快取頻繁讀取,以提升 Azure Stack HCI 和 Windows Server 的效能。 寫入無法在記憶體中緩存。

Azure Stack HCI 和 Windows Server 與叢集共用磁碟區 (CSV) 記憶體中讀取快取相容。 使用系統記憶體來快取讀取可以改善 Hyper-V 等應用程式的效能,其會使用未壓縮的 I/O 來存取 VHD 或 VHDX 檔案。 (未緩衝的 I/O 是指未被 Windows 快取管理員快取的任何作業。)

因為記憶體內部快取是伺服器本地,所以可改善數據區域性。 最近的讀取會在虛擬機執行所在的相同主機上快取記憶體中,減少讀取透過網路的頻率。 這會導致較低的延遲和更佳的記憶體效能。

請注意,CSV 記憶體內部讀取快取與 存放集區快取不同。

規劃考慮

記憶體中的讀取快取對於讀取密集型工作負載最有效,例如虛擬桌面基礎架構(VDI)。 相反地,如果工作負載是寫入密集型的,快取可能會造成額外負擔多於其帶來的價值,因此應該停用。

您可以使用最多 80 個% 的總體物理記憶體作為 CSV 記憶體內部的讀取快取。 請小心為您的 VM 留下足夠的記憶體!

注意

某些微基準工具,例如 DISKSPD 和 VM 機隊,啟用 CSV 記憶體讀取快取可能會產生比未啟用時更差的結果。 根據預設,VM Fleet 會⽤每個 VM 建立一個 10 GiB 的 VHDX——若有 100 個 VM,總計約 1 TiB,然後進行 均勻隨機的 讀取和寫入。 不同於實際工作負載,讀取不會遵循任何可預測或重複的模式,因此記憶體內部快取無效,而且只會產生額外負荷。

設定內存讀取快取

AZURE Stack HCI、Windows Server 2019 和 Windows Server 2016 中提供 CSV 記憶體內部讀取快取,其功能相同。 在 Azure Stack HCI 和 Windows Server 2019 中,預設已啟用並配置 1 吉比字節(GiB)。 在 Windows Server 2016 中,預設為關閉。

操作系統版本 預設 CSV 快取大小
Azure Stack HCI 1 GiB
Windows Server 2019 1 GiB
Windows Server 2016 0 (已停用)

使用 Windows Admin Center 設定快取

若要使用 Windows Admin Center 設定快取,請執行下列動作:

  1. 在 Windows Admin Center 中,連線到叢集,然後從左側的 [工具] 窗格中選取 [設定]
  2. 在 [設定] 窗格中,於 [儲存體] 下選擇 [記憶體內部快取]。
  3. 在右窗格中,複選框會啟用或停用快取,您也可以指定要配置給快取的每個伺服器記憶體上限。
  4. 完成後,請選取 儲存

在 Windows Admin Center 中,複選框會啟用或停用快取。您也可以指定要設定給快取的每個伺服器記憶體上限。

使用 PowerShell 設定快取

若要查看使用 PowerShell 配置多少記憶體,請以系統管理員身分執行下列命令:

(Get-Cluster).BlockCacheSize

傳回的值是以每部伺服器的兆位元組 (MiB) 為單位。 例如,1024 代表 1 GiB。

若要變更配置多少記憶體,請使用PowerShell修改此值。 例如,若要為每個伺服器配置 2 GiB,請執行:

(Get-Cluster).BlockCacheSize = 2048

若要讓變更立即生效,請暫停並重新啟動 CSV 磁碟區,或將它們在伺服器之間移動。 例如,使用此 PowerShell 片段將每個 CSV 移至另一個伺服器節點,然後再返回:

Get-ClusterSharedVolume | ForEach {
    $Owner = $_.OwnerNode
    $_ | Move-ClusterSharedVolume
    $_ | Move-ClusterSharedVolume -Node $Owner
}

後續步驟

如需相關信息,請參閱: