Mise en cache de lecture du stockage

La mise en cache en lecture améliore les performances du disque d’une machine virtuelle car, après la lecture initiale à partir du disque externe, les données sont mises en cache dans la mémoire libre de l’hôte. Il améliore les performances dans les situations où de nombreuses machines virtuelles sont clonées à partir d’une seule machine virtuelle de base, car il réduit considérablement le nombre de blocs lus à partir du disque. Par exemple, dans l’environnement Citrix Virtual Desktops environnements MCS (Machine Creation Service).

L’amélioration des performances peut être observée chaque fois que les données sont lues à partir du disque plusieurs fois, car elles sont mises en cache dans la mémoire. Ce changement est le plus notable dans la dégradation du service qui se produit lors de situations d’E/S lourdes. Par exemple, dans les situations suivantes :

  • Lorsqu’un nombre important d’utilisateurs finaux démarrent dans un délai très restreint (tempête de démarrage)
  • Lorsqu’un nombre important de machines virtuelles sont programmées pour exécuter des analyses de logiciels malveillants en même temps (tempêtes antivirus).

La mise en cache en lecture est activée par défaut lorsque vous avez le type de licence approprié.

Remarque :

Storage Read Caching est disponible pour les clients Citrix Hypervisor Premium Edition.

Storage Read Caching est également disponible pour les clients qui accèdent à Citrix Hypervisor via leur droit Citrix Virtual Apps and Desktops.

Activer et désactiver la mise en cache en lecture

Pour les SR basées sur des fichiers, tels que les types NFS et EXT3 SR, la mise en cache en lecture est activée par défaut. La mise en cache en lecture est désactivée pour tous les autres SR.

Pour désactiver la mise en cache en lecture pour un SR spécifique, exécutez la commande suivante :

xe sr-param-set uuid=sr-uuid other-config:o_direct=true

Limitations

  • La mise en cache en lecture est uniquement disponible pour les SR NFS et EXT3. Il n’est pas disponible pour les autres types SR.

  • La mise en cache en lecture seule s’applique uniquement aux VDI et aux parents VDI en lecture seule. Ces VDI existent où les machines virtuelles sont créées à partir de « clone rapide » ou d’instantanés de disque. Les meilleures améliorations de performances peuvent être constatées lorsque de nombreuses machines virtuelles sont clonées à partir d’une seule image « dorée ».

  • Les améliorations des performances dépendent de la quantité de mémoire disponible dans le domaine de contrôle de l’hôte (dom0). L’augmentation de la quantité de mémoire dom0 permet d’allouer plus de mémoire au cache de lecture. Pour plus d’informations sur la configuration de la mémoire dom0, reportez-vous à la sectionCTX134951.

Comparaison avec IntelliCache

IntelliCache et la mise en cache de lecture basée sur la mémoire sont à certains égards complémentaires. IntelliCache non seulement met en cache un niveau différent, mais il met également en cache les écritures en plus des lectures. IntelliCache met en cache la lecture du réseau sur un disque local. La mise en cache de lecture en mémoire cache les lectures du réseau ou du disque dans la mémoire hôte. L’avantage de la mise en cache en lecture en mémoire est que la mémoire est toujours d’un ordre de grandeur plus rapide qu’un disque SSD (SSD). Les performances dans les tempêtes de démarrage et autres situations d’E/S lourdes s’améliorent.

La mise en cache en lecture et IntelliCache peuvent être activées simultanément. Dans ce cas, IntelliCache met en cache les lectures du réseau vers un disque local. Les lectures de ce disque local sont mises en cache en mémoire avec la mise en cache en lecture.

Définir la taille du cache de lecture

Les performances du cache de lecture peuvent être optimisées, en donnant plus de mémoire au domaine de contrôle de Citrix Hypervisor (dom0).

Important :

définissez la taille du cache de lecture sur TOUS les hôtes du pool individuellement pour l’optimisation. Toute modification ultérieure de la taille du cache de lecture doit également être définie sur tous les hôtes du pool.

Sur le serveur Citrix Hypervisor, ouvrez un shell local et ouvrez une session en tant que root.

Pour définir la taille du cache de lecture, exécutez la commande suivante :

/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=nnM,max:nnM

Définissez les valeurs initiales et maximales sur la même valeur. Par exemple, pour définir la mémoire dom0 à 2 048 Mio :

/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=20480M,max:20480M

Important :

Redémarrez tous les hôtes après avoir modifié la taille du cache de lecture.

Comment afficher l’allocation de mémoire dom0 actuelle ?

Pour afficher les paramètres de mémoire dom0 actuels, entrez :

free -m

La sortie defree -m montre les paramètres de mémoire dom0 actuels. La valeur peut être inférieure à celle prévue en raison de divers frais généraux. L’exemple de tableau ci-dessous montre la sortie d’un hôte avec dom0 défini sur 2,6 Gio

  Total Utilisé Libre Partagé Tampon/cache Disponible
Mem : 2450 339 1556 9 554 2019
Échangez : 1023 0 1023      

Quelle gamme de valeurs peut-on utiliser ?

Comme Citrix Hypervisor Control Domain (dom0) est 64 bits, de grandes valeurs peuvent être utilisées, par exemple 32768 Mio. Cependant, nous vous recommandons de ne pas réduire la mémoire dom0 en dessous de 1 Gio.

Notes d’affichage de XenCenter

La mémoire entière de l’hôte peut être considérée comme comprenant l’hyperviseur Xen, dom0, les machines virtuelles et la mémoire libre. Même si la mémoire dom0 et VM est généralement de taille fixe, l’hyperviseur Xen utilise une quantité variable de mémoire. La quantité de mémoire utilisée dépend de divers facteurs. Ces facteurs incluent le nombre de machines virtuelles exécutées sur l’hôte à tout moment et la façon dont ces machines virtuelles sont configurées. Il n’est pas possible de limiter la quantité de mémoire utilisée par Xen. La limitation de la quantité de mémoire peut entraîner un manque de mémoire de Xen et empêcher le démarrage de nouvelles machines virtuelles, même lorsque la mémoire de l’hôte était libre.

Pour afficher la mémoire allouée à un hôte, dans XenCenter sélectionnez l’hôte, puis cliquez sur l’onglet Mémoire .

Le champ Citrix Hypervisor affiche la somme de la mémoire allouée à la mémoire dom0 et Xen.** Par conséquent, la quantité de mémoire affichée peut être supérieure à celle spécifiée par l’administrateur. La taille de la mémoire peut varier lors du démarrage et de l’arrêt des machines virtuelles, même lorsque l’administrateur a défini une taille fixe pour dom0.