Użyj pamięci podręcznej odczytu woluminu CSV z Azure Stack HCLUse the CSV in-memory read cache with Azure Stack HCI

Dotyczy: Azure Stack HCL, wersja 20H2; System Windows Server 2019Applies to: Azure Stack HCI, version 20H2; Windows Server 2019

W tym temacie opisano sposób użycia pamięci systemowej w celu zwiększenia wydajności Azure Stack HCL przez buforowanie częstych operacji odczytu.This topic describes how to use system memory to boost the performance of Azure Stack HCI by caching frequent reads. Nie można buforować zapisów w pamięci.Writes cannot be cached in memory.

Azure Stack HCL jest zgodny z pamięcią podręczną odczytu udostępniony wolumin klastra (CSV).Azure Stack HCI is compatible with the Cluster Shared Volume (CSV) in-memory read cache. Użycie pamięci w pamięci podręcznej odczyty może zwiększyć wydajność dla aplikacji, takich jak funkcja Hyper-V, która używa niebuforowanych operacji we/wy do uzyskiwania dostępu do plików VHD lub VHDX.Using system memory to cache reads can improve performance for applications like Hyper-V, which uses unbuffered I/O to access VHD or VHDX files. (Wszystkie operacje I/OS nie są buforowane przez Menedżera pamięci podręcznej systemu Windows).(Unbuffered I/Os are any operations that are not cached by the Windows Cache Manager.)

Ze względu na to, że pamięć podręczna w pamięci jest oparta na serwerze lokalnym, poprawia dane dotyczące lokalizacji w pamięci podręcznej na tym samym hoście, na którym uruchomiono maszynę wirtualną, co zmniejsza częstotliwość operacji odczytu przez sieć.Because the in-memory cache is server-local, it improves data locality: recent reads are cached in memory on the same host where the virtual machine is running, reducing how often reads go over the network. Powoduje to wolniejsze opóźnienia i lepszą wydajność magazynu.This results in lower latency and better storage performance.

Należy pamiętać, że pamięć podręczna odczytu woluminów CSV jest różna od pamięci podręcznej puli magazynu w Azure Stack HCL.Note that the CSV in-memory read cache is different from the storage pool cache in Azure Stack HCI.

Kwestie dotyczące planowaniaPlanning considerations

Pamięć podręczna odczytu pamięci jest najbardziej wydajna dla obciążeń intensywnie korzystających z odczytu, takich jak infrastruktura pulpitów wirtualnych (VDI).The in-memory read cache is most effective for read-intensive workloads, such as Virtual Desktop Infrastructure (VDI). Jeśli obciążenie jest wyjątkowo czasochłonne, pamięć podręczna może zwiększyć obciążenie niż wartość i powinna być wyłączona.Conversely, if the workload is extremely write-intensive, the cache may introduce more overhead than value and should be disabled.

Można użyć maksymalnie 80% całkowitej pamięci fizycznej dla pamięci podręcznej odczytu w pamięci.You can use up to 80% of total physical memory for the CSV in-memory read cache. Należy zachować ostrożność, aby pozostawić wystarczającą ilość pamięci dla maszyn wirtualnych.Be careful to leave enough memory for your virtual machines!

Uwaga

Niektóre narzędzia mikrotestowe, takie jak narzędzia DISKSPD i flota maszyn wirtualnych , mogą generować gorsze wyniki z włączoną pamięcią podręczną odczytu w pamięci.Certain microbenchmarking tools like DISKSPD and VM Fleet may produce worse results with the CSV in-memory read cache enabled than without it. Domyślnie flota maszyn wirtualnych tworzy 1 10 GiB VHDX na maszynę wirtualną — około 1 TiB całkowitej dla maszyn wirtualnych 100, a następnie wykonuje jednolite operacje odczytu i zapisu.By default VM Fleet creates one 10 GiB VHDX per virtual machine – approximately 1 TiB total for 100 VMs – and then performs uniformly random reads and writes to them. W przeciwieństwie do rzeczywistych obciążeń, odczyty nie podążają za żadnym przewidywalną lub powtarzającym się wzorcem, dlatego pamięć podręczna w pamięci nie jest skuteczna i po prostu nawiąże obciążenie.Unlike real workloads, the reads don't follow any predictable or repetitive pattern, so the in-memory cache is not effective and just incurs overhead.

Konfigurowanie pamięci podręcznej odczytu w pamięciConfiguring the in-memory read cache

Pamięć podręczna odczytu woluminów CSV jest dostępna w Azure Stack HCL, Windows Server 2019 i Windows Server 2016 z tą samą funkcjonalnością.The CSV in-memory read cache is available in Azure Stack HCI, Windows Server 2019, and Windows Server 2016 with the same functionality. W Azure Stack HCL i Windows Server 2019 jest on domyślnie włączony z przydzieloną 1 nazywana gigabajtem i (GiB).In Azure Stack HCI and Windows Server 2019, it's on by default with 1 gibibyte (GiB) allocated. W systemie Windows Server 2016 jest on domyślnie wyłączony.In Windows Server 2016, it's off by default.

Wersja systemu operacyjnegoOS version Domyślny rozmiar pamięci podręcznej woluminów CSVDefault CSV cache size
Azure Stack HCIAzure Stack HCI 1 GiB1 GiB
Windows Server 2019Windows Server 2019 1 GiB1 GiB
Windows Server 2016Windows Server 2016 0 (wyłączone)0 (disabled)

Aby skonfigurować pamięć podręczną za pomocą Centrum administracyjnego systemu Windows, wybierz pozycję Ustawienia w górnej części menu Narzędzia po lewej stronie.To configure the cache using Windows Admin Center, select Settings at the very bottom of the Tools menu on the left. Następnie przejdź do magazynu > pamięci podręcznej w pamięci.Then go to Storage > In-memory cache. Pole wyboru włącza lub wyłącza pamięć podręczną oraz pozwala określić maksymalną ilość pamięci na serwer, która ma zostać przypisana do pamięci podręcznej.A checkbox enables or disables the cache, and you can also specify the maximum memory per server to be allocated to the cache. Pamiętaj o kliknięciu przycisku Zapisz w dolnej części strony po wprowadzeniu zmian.Be sure to click Save at the bottom of the page after making your changes.

Aby sprawdzić ilość pamięci przydzieloną przy użyciu programu PowerShell, uruchom polecenie:To see how much memory is allocated using PowerShell, run:

(Get-Cluster).BlockCacheSize

Zwrócona wartość to mebibytes (MiB) na serwer.The value returned is in mebibytes (MiB) per server. Na przykład 1024 reprezentuje 1 GIB.For example, 1024 represents 1 GiB.

Aby zmienić ilość pamięci przydzieloną, zmodyfikuj tę wartość przy użyciu programu PowerShell.To change how much memory is allocated, modify this value using PowerShell. Na przykład aby przydzielić 2 GiB na serwer, uruchom polecenie:For example, to allocate 2 GiB per server, run:

(Get-Cluster).BlockCacheSize = 2048

Aby zmiany zaczęły obowiązywać natychmiast, należy wstrzymać, a następnie wznowić woluminy woluminów CSV lub przenieść je między serwerami.For changes to take effect immediately, pause then resume your CSV volumes, or move them between servers. Na przykład użyj tego fragmentu programu PowerShell, aby przenieść każdy wolumin CSV do innego węzła serwera i ponownie:For example, use this PowerShell fragment to move each CSV to another server node and back again:

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

Następne krokiNext steps

Aby uzyskać powiązane informacje, zobacz również:For related information, see also: