Azure Stack CI ile CSV bellek içi okuma önbelleğini kullanmaUse the CSV in-memory read cache with Azure Stack HCI

Uygulama hedefi: Azure Stack HI, sürüm 20H2; Windows Server 2019Applies to: Azure Stack HCI, version 20H2; Windows Server 2019

Bu konuda, sık kullanılan okumaları önbelleğe alarak Azure Stack HCı 'nin performansını artırmak için sistem belleğinin nasıl kullanılacağı açıklanmaktadır.This topic describes how to use system memory to boost the performance of Azure Stack HCI by caching frequent reads. Yazma işlemleri bellekte önbellekte olamaz.Writes cannot be cached in memory.

Azure Stack HCı, bellek içi okuma önbelleği Küme Paylaşılan Birimi (CSV) ile uyumludur.Azure Stack HCI is compatible with the Cluster Shared Volume (CSV) in-memory read cache. Okuma önbelleği için sistem belleğinin kullanılması, VHD veya VHDX dosyalarına erişmek için arabelleğe alınmamış g/ç kullanan Hyper-V gibi uygulamaların performansını iyileştirebilir.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. (Arabelleğe alınmamış g/ç 'ler, Windows Cache Manager tarafından önbelleğe alınmamış tüm işlemlerdir.)(Unbuffered I/Os are any operations that are not cached by the Windows Cache Manager.)

Bellek içi önbellek sunucu-yerel olduğundan, veri sayısını artırır: son okumalar, sanal makinenin çalıştığı konakta önbellekte önbelleğe alınır ve ağ üzerinden ne sıklıkta okunduğunu azaltır.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. Bu, daha düşük gecikme süresine ve daha iyi depolama performansına neden olur.This results in lower latency and better storage performance.

CSV, bellek içi okuma önbelleğinin Azure Stack HCı 'daki depolama havuzu önbelleğinden farklı olduğunu unutmayın.Note that the CSV in-memory read cache is different from the storage pool cache in Azure Stack HCI.

Planlama konusunda dikkat edilmesi gerekenlerPlanning considerations

Bellek içi okuma önbelleği, sanal masaüstü altyapısı (VDı) gibi okuma yoğunluklu iş yükleri için en etkilidir.The in-memory read cache is most effective for read-intensive workloads, such as Virtual Desktop Infrastructure (VDI). Buna karşılık, iş yükü aşırı yoğun yazma yoğunluğu ise, önbellek değerden daha fazla yük getirebilir ve devre dışı bırakılmalıdır.Conversely, if the workload is extremely write-intensive, the cache may introduce more overhead than value and should be disabled.

CSV bellek içi okuma önbelleğinde toplam fiziksel belleğin %80 ' i kullanabilirsiniz.You can use up to 80% of total physical memory for the CSV in-memory read cache. Sanal makineleriniz için yeterli bellek ayrılmamaya dikkat edin!Be careful to leave enough memory for your virtual machines!

Not

DISKSPD ve VM Fleet gibi bazı mikro sınama araçları, CSV bellek içi okuma önbelleğinde etkin olmadan daha kötü sonuçlar verebilir.Certain microbenchmarking tools like DISKSPD and VM Fleet may produce worse results with the CSV in-memory read cache enabled than without it. Varsayılan olarak, bir sanal makine için 1 10 GiB VHDX, 100 VM 'Ler için yaklaşık 1 TiB toplam oluşturur ve bunlara rastgele okuma ve yazma işlemleri gerçekleştirir.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. Gerçek iş yüklerinden farklı olarak, okuma işlemi öngörülebilir veya yinelenen bir düzende ileretmez, bu nedenle bellek içi önbellek etkili değildir ve yalnızca ek yük olur.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.

Bellek içi okuma önbelleğini yapılandırmaConfiguring the in-memory read cache

CSV bellek içi okuma önbelleği, aynı işlevselliğe sahip Azure Stack HI, Windows Server 2019 ve Windows Server 2016 ' de kullanılabilir.The CSV in-memory read cache is available in Azure Stack HCI, Windows Server 2019, and Windows Server 2016 with the same functionality. Azure Stack HIP ve Windows Server 2019 ' de, varsayılan olarak, ayrılmış 1 gibibayt (gib) ile yapılır.In Azure Stack HCI and Windows Server 2019, it's on by default with 1 gibibyte (GiB) allocated. Windows Server 2016 ' de varsayılan olarak kapalıdır.In Windows Server 2016, it's off by default.

İşletim sistemi sürümüOS version Varsayılan CSV önbelleği boyutuDefault 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 (devre dışı)0 (disabled)

Windows Yönetim Merkezi 'ni kullanarak önbelleği yapılandırmak için sol taraftaki Araçlar menüsünün en altında bulunan Ayarlar ' ı seçin.To configure the cache using Windows Admin Center, select Settings at the very bottom of the Tools menu on the left. Daha sonra depolama > bellek içi önbelleğegidin.Then go to Storage > In-memory cache. Bir onay kutusu önbelleği sağlar veya devre dışı bırakır ve önbelleğe ayrılacak sunucu başına en fazla bellek sayısını da belirtebilirsiniz.A checkbox enables or disables the cache, and you can also specify the maximum memory per server to be allocated to the cache. Değişikliklerinizi yaptıktan sonra sayfanın alt kısmındaki Kaydet ' e tıkladığınızdan emin olun.Be sure to click Save at the bottom of the page after making your changes.

PowerShell kullanarak ayrılan bellek miktarını görmek için şunu çalıştırın:To see how much memory is allocated using PowerShell, run:

(Get-Cluster).BlockCacheSize

Döndürülen değer, sunucu başına mebibytes (MIB) içinde.The value returned is in mebibytes (MiB) per server. Örneğin, 1024 1 GiB 'yi temsil eder.For example, 1024 represents 1 GiB.

Ayrılan bellek miktarını değiştirmek için, PowerShell kullanarak bu değeri değiştirin.To change how much memory is allocated, modify this value using PowerShell. Örneğin, sunucu başına 2 GiB ayırmak için şunu çalıştırın:For example, to allocate 2 GiB per server, run:

(Get-Cluster).BlockCacheSize = 2048

Değişikliklerin hemen etkili olabilmesi için, CSV birimlerinizi duraklatın veya sunucular arasında taşıyın.For changes to take effect immediately, pause then resume your CSV volumes, or move them between servers. Örneğin, bu PowerShell parçasını kullanarak her bir CSV 'yi başka bir sunucu düğümüne taşıyın ve yeniden geri edin: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
}

Sonraki adımlarNext steps

İlgili bilgiler için Ayrıca bkz:For related information, see also: