Utiliser le cache de lecture en mémoire CSV

S’applique à : Azure Stack HCI, versions 22H2 et 21H2, Windows Server 2022, Windows Server 2019, Windows Server 2016

Cette rubrique explique comment utiliser la mémoire système pour booster les performances d’Azure Stack HCI et de Windows Server en mettant en cache les lectures fréquentes. Les écritures ne peuvent pas être mises en cache dans la mémoire.

Azure Stack HCI et Windows Server sont compatibles avec le cache de lecture en mémoire du volume partagé de cluster (CSV). L’utilisation de la mémoire système pour mettre en cache les lectures peut améliorer les performances des applications comme Hyper-V, qui utilisent des E/S non mises en mémoire tampon pour accéder aux fichiers VHD ou VHDX. (Les E/S non mises en mémoire tampon sont des opérations qui ne sont pas mises en cache par le gestionnaire de cache Windows.)

Étant donné que le cache en mémoire est local du serveur, il améliore la localisation des données. Les lectures récentes sont mises en cache en mémoire sur le même hôte que celui où la machine virtuelle est en cours d’exécution, ce qui réduit la fréquence à laquelle les lectures sont effectuées sur le réseau. Cela entraîne une latence plus faible et de meilleures performances de stockage.

Notez que le cache de lecture en mémoire du volume partagé de cluster diffère du cache de pool de stockage.

Considérations en matière de planification

Le cache de lecture en mémoire est plus efficace pour les charges de travail nécessitant beaucoup de lectures, telles que VDI (Virtual Desktop Infrastructure). À l’inverse, si la charge de travail est très gourmande en écriture, le cache peut introduire une surcharge et doit être désactivé.

Vous pouvez utiliser jusqu’à 80 % de la mémoire physique totale pour le cache de lecture en mémoire du volume partagé de cluster. Veillez soigneusement à garder suffisamment de mémoire pour vos machines virtuelles.

Notes

Certains outils de microtest tels que DISKSPD et VM Fleet peuvent produire de plus mauvais résultats lorsque le cache de lecture en mémoire du volume partagé de cluster est activé. Par défaut, VM Fleet crée 1 VHDX de 10 Gio par machine virtuelle, soit au total environ 1 Tio pour 100 machines virtuelles, puis effectue sur celles-ci des lectures et écritures uniformément aléatoires. Contrairement aux charges de travail réelles, les lectures ne suivent pas un modèle prévisible ou répétitif, de sorte que le cache en mémoire n’est pas efficace et crée uniquement une surcharge.

Configuration du cache de lecture en mémoire

Le cache de lecture en mémoire du volume partagé de cluster (CSV) est disponible dans Azure Stack HCI, Windows Server 2019 et Windows Server 2016 avec les mêmes fonctionnalités. Dans Azure Stack HCI et Windows Server 2019, il est activé par défaut avec 1 Gio alloué. Dans Windows Server 2016, il est désactivé par défaut.

Version du SE Taille du cache de volume partagé de cluster (CSV) par défaut
Azure Stack HCI 1 Gio
Windows Server 2019 1 Gio
Windows Server 2016 0 (désactivé)

Configurer le cache à l’aide de Windows Admin Center

Pour configurer le cache à l’aide de Windows Admin Center, procédez comme suit :

  1. Dans Windows Admin Center, connectez-vous à un cluster, puis sélectionnez Paramètres dans le volet Outils à gauche.
  2. Sélectionnez Cache en mémoire sous Stockage dans le volet Paramètres .
  3. Dans le volet droit, une case à cocher active ou désactive le cache, et vous pouvez également spécifier la mémoire maximale par serveur à allouer au cache.
  4. Lorsque vous avez terminé, sélectionnez Enregistrer.

Dans Windows Admin Center, une case à cocher active ou désactive le cache. Vous pouvez également spécifier la mémoire maximale par serveur à allouer au cache.

Configurer le cache à l’aide de PowerShell

Pour voir la quantité de mémoire allouée à l’aide de PowerShell, exécutez la commande suivante en tant qu’administrateur :

(Get-Cluster).BlockCacheSize

La valeur retournée est exprimée en Mio par serveur. Par exemple, 1024 représente 1 Gio.

Pour modifier la quantité de mémoire allouée, modifiez cette valeur à l’aide de PowerShell. Par exemple, pour allouer 2 Gio par serveur, exécutez :

(Get-Cluster).BlockCacheSize = 2048

Pour que les modifications prennent effet immédiatement, suspendez, puis relancez vos volumes partagés de cluster ou déplacez-les entre des serveurs. Par exemple, utilisez ce fragment PowerShell pour déplacer chaque volume partagé de cluster vers un autre nœud de serveur puis dans le sens inverse :

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

Étapes suivantes

Pour consulter des informations connexes, reportez-vous également à :