使用 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 Cache Manager 未快取的任何作業。)
由於記憶體內部快取為伺服器本機,因此可改善資料位置。 最近的讀取會快取在虛擬機器 (VM) 執行所在的相同主機上,減少讀取透過網路的頻率。 這會導致較低的延遲和較佳的儲存體效能。
請注意,CSV 記憶體內部讀取快取與存放集區快取不同。
規劃考量
記憶體內部讀取快取最適用於讀取非常密集的工作負載,例如虛擬桌面基礎結構 (VDI)。 相反地,如果工作負載寫入非常密集,快取可能會導致比值更多的額外負荷,而且應該加以停用。
您最多可以針對 CSV 記憶體內部讀取快取使用最高 80% 的實體記憶體總計。 請務必為您的 VM 保留足夠的記憶體!
注意
某些微效能評定工具 (例如 DISKSPD 和 VM Fleet) 在啟用 CSV 記憶體內部讀取快取的情況下,可能會比不啟用的情況產生較差的結果。 依預設,VM Fleet 會為每個 VM 建立一個 10 GiB VHDX – 100 個 VM 總計大約有 1 TiB,然後對其執行一致的隨機讀取和寫入。 不同於實際的工作負載,讀取不會遵循任何可預測或重複的模式,因此記憶體內部快取效果不彰,而只會產生額外負荷。
設定記憶體內部讀取快取
CSV 記憶體內部讀取快取可在 Azure Stack HCI、Windows Server 2019 及具有相同功能的 Windows Server 2016 中使用。 在 Azure Stack HCI 和 Windows Server 2019 中,預設會開啟並配置 1 GB (GiB)。 在 Windows Server 2016 中,其預設為關閉。
OS 版本 | 預設 CSV 快取大小 |
---|---|
Azure Stack HCI | 1 GiB |
Windows Server 2019 | 1 GiB |
Windows Server 2016 | 0 (停用) |
使用 Windows Admin Center 設定快取
若要使用 Windows Admin Center 設定快取,請執行下列動作:
- 在 Windows Admin Center 中,連線到叢集,然後從左側的 [工具] 窗格中選取 [設定]。
- 在 [設定] 窗格的 [儲存體] 底下,選取[記憶體內部快取]。
- 在右窗格中,核取方塊會啟用或停用快取,您也可以指定要配置給快取的每部伺服器記憶體上限。
- 完成時,選取 [儲存]。
使用 PowerShell 設定快取
若要查看使用 PowerShell 配置多少記憶體,請以系統管理員身分執行下列命令:
(Get-Cluster).BlockCacheSize
所傳回的是每一部伺服器的值 (以 mebibyte,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
}
後續步驟
如需相關資訊,另請參閱:
- 了解存放集區快取
- 在容錯移轉叢集中使用叢集共用磁碟區 \(部分機器翻譯\)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應