Partager via


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 améliorer les performances d’Azure Stack HCI et de Windows Server en mettant en cache des lectures fréquentes. Les écritures ne peuvent pas être mises en cache en mémoire.

Azure Stack HCI et Windows Server sont compatibles avec le cache de lecture en mémoire des volumes partagés 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 utilise des E/S non chiffrées pour accéder aux fichiers VHD ou VHDX. (Les E/S non déboguées sont toutes les 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 de serveur, il améliore la localité des données. Les lectures récentes sont mises en cache en mémoire sur le même hôte que celui sur lequel la machine virtuelle est en cours d’exécution, ce qui réduit la fréquence à laquelle les lectures passent 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 CSV est différent du cache du pool de stockage .

Considérations relatives à la planification

Le cache de lecture en mémoire est le plus efficace pour les charges de travail gourmandes en lecture, telles que Virtual Desktop Infrastructure (VDI). À l’inverse, si la charge de travail est extrêmement intensive en écriture, le cache peut introduire plus de surcharge que de valeur et doit être désactivé.

Vous pouvez utiliser jusqu’à 80% de mémoire physique totale pour le cache de lecture en mémoire CSV. Veillez à laisser suffisamment de mémoire pour vos machines virtuelles !

Note

Certains outils de microbenchmarking comme DISKSPD et flotte de machines virtuelles peuvent produire des résultats pires avec le cache de lecture en mémoire CSV activé que sans celui-ci. Par défaut, la flotte de machines virtuelles crée un VHDX de 10 Gio par machine virtuelle ( environ 1 Tio total pour 100 machines virtuelles), puis effectue des lectures et des écritures aléatoires uniformément aléatoires. Contrairement aux charges de travail réelles, les lectures ne suivent pas de modèle prévisible ou répétitif, de sorte que le cache en mémoire n’est pas efficace et entraîne simplement une surcharge.

Configuration du cache de lecture en mémoire

Le cache de lecture en mémoire CSV est disponible dans Azure Stack HCI, Windows Server 2019 et Windows Server 2016 avec la même fonctionnalité. Dans Azure Stack HCI et Windows Server 2019, il est activé par défaut avec 1 gibibyte (Gio) alloué. Dans Windows Server 2016, il est désactivé par défaut.

Version du système d’exploitation Taille du cache 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 mémoire cache 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 ce qui suit en tant qu’administrateur :

(Get-Cluster).BlockCacheSize

La valeur retournée est en mebibytes (MiB) 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 et reprenez vos volumes CSV, ou déplacez-les entre les serveurs. Par exemple, utilisez ce fragment PowerShell pour déplacer chaque fichier CSV vers un autre nœud de serveur et revenir à nouveau :

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

Étapes suivantes

Pour plus d’informations, consultez également :