La taille du cache étendu dépend directement de la quantité de mémoire (par défaut elle est à 12 Go) qui est attribuée au Nutanix « Controller VM » (CVM). Elle est ajustée de manière dynamique en fonction des ressources utilisées et de la disponibilité de la mémoire. L'augmentation de la taille de la mémoire du CVM vous permettra de spécifier un cache étendu plus grand et offrira un espace de traitement en lecture dans la mémoire plus important (cache « hits »).
La figure ci-dessous montre l’architecture NDFS des chemins I/O pour le cache étendu (Extent Cache):
Gflags du cache étendu
Les Gflags sont des paramètres avancés de configuration qui permettent de modifier les valeurs de configuration de la plate-forme Nutanix
Attention!!!. La modification des paramètres Gflags ne doivent être effectuées que par un expert Nutanix et sur des systèmes qui ne sont pas en production.
stargate_extent_cache_max_MB
- Explication : Ce gflag spécifie la taille du cache étendu
- Par défaut: -1 (dyanmic)
Comment dimensionner la taille du cache étendu?
L'élément essentiel à surveiller lorsque l’on dimensionne le cache étendu est le taux du du cache étendu « hits » ou le % d'opérations de lecture stockés dans le cache étendu, qui ne vont pas dans le magasin étendu (Extent Store). Il est conseillé que cette valeur soit supérieure à 95% pour les charges de travail aléatoires, ce qui signifie que 95% de toutes les demandes d’opérations en lecture se feront en mémoire.
Si cette valeur est constamment faible (50% est très insuffisant pour les charges de travail aléatoires) et que vous constatez des latences ou un étranglement des IOPS en lecture, il faut augmenter la taille du cache étendu pour augmenter les performances. Vous devriez voir les performances des I/O en lecture qui augmentent au fur et à mesure que le % du cache étendu « hits » grandit.
Voici une un exemple des paramètres illustrant le taux de cache étendu « hits » et de la taille mémoire.
Comment configurer la taille du cache étendu
Dans le descriptif ci-dessous, pour traiter 100% des opérations en lecture dans le cache étendu, on utilise 12 Go pour le traitement sur les 16 Go alloués.
Les étapes suivantes permettent de mettre à jour la mémoire du CVM et de modifier la taille du cache étendue. (On utilise 16 Go de cache dans l’exemple).
REMARQUE: Il ne faut pas faire ces modifications en environnement de production, car un redémarrage des services de « Stargate » sera nécessaire et potentiellement celui du CVM aussi.
La méthodologie :
- Ajoutez de la mémoire à chaque CVM Nutanix (Attention, si la mémoire enfichable à chaud n'est pas activée, le CVM devra être éteint)
- Connectez-vous au portail Aegis à l'adresse « http://Zookeeper Leader:7777 »
- Sélectionnez « GFlags editor »
- Sélectionnez le composant « stargate »
- Cliquez sur « Créer »
- Développez l'arborescence « ... / extent_cache.cc »
- Cliquez sur le paramètre « stargate_extent_cache_max_MB »
- Réglez la valeur à 25% de la mémoire totale de la CVM (dans l’exemple, les CVM sont à 64 Go, donc 25% est égal à 6 GB/16384 MB)
- Cochez la case « Apply flag changes to all future versions of this binary »
- Cliquez sur « Valider »
- Redémarrez le service « stargate » sur chaque CVM
Vous pouvez également changer en passant par l’URL suivante pour chaque CVM:
- http://<@IP du CVM>:2010/h/gflags?stargate_extent_cache_max_MB=16384
Voici une autre façon de le faire, en passant par des lignes de commande la CLI sur le CVM:
Vous pouvez contrôler que la modification a bien été appliquée en visualisant la page « Stargate Gflags » à l’adresse http://<@IP du CVM>: 2009/h/gflags. Avec une taille de 16 Go, la valeur « stargate_extent_cache_max_MB » doit être égale à « 16384 » (-1 par défaut).
Tout le travail et le contenu de ce billet sont à mettre à l'actif de Steven POITRAS, vous trouverez son billet sur ce lien