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 :
- Dans Windows Admin Center, connectez-vous à un cluster, puis sélectionnez Paramètres dans le volet Outils à gauche.
- Sélectionnez Cache en mémoire sous Stockage dans le volet Paramètres .
- 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.
- Lorsque vous avez terminé, sélectionnez Enregistrer.
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 à :