Citrix Hypervisor

Mémoire VM

Important :

La mise à jour cumulative 1 de Citrix Hypervisor 8.2 prend fin le 25 juin 2025. Planifiez votre mise à niveau vers XenServer 8 dès maintenant pour assurer une transition en douceur et un support continu. Pour plus d’informations, consultez Mise à niveau.

Si vous utilisez vos fichiers de licence Citrix Virtual Apps and Desktops pour obtenir une licence pour vos hôtes Citrix Hypervisor 8.2 Cumulative Update 1, ces fichiers de licence ne sont pas compatibles avec XenServer 8. Avant la mise à niveau, vous devez acquérir les fichiers de licence socket XenServer Premium Edition à utiliser avec XenServer 8. Ces fichiers de licence de socket sont disponibles en tant que droits des abonnements Citrix pour le cloud privé, Citrix Universal Hybrid Multi-Cloud, Citrix Universal MSP et Citrix Platform License pour l’exécution de vos charges de travail Citrix. Les clients Citrix qui n’ont pas encore migré vers ces nouveaux abonnements peuvent demander à participer à une promotion gratuite pour 10 000 licences de sockets XenServer Premium Edition. Pour plus d’informations, consultez XenServer.

Si vous n’obtenez pas de licence compatible pour XenServer 8 avant la mise à niveau, lorsque vous mettez à niveau vos hôtes, ils reviennent à l’édition d’essai de 90 jours. L’édition d’essai offre les mêmes fonctionnalités que l’édition Premium, avec quelques limitations. Pour plus d’informations, consultez Présentation des licences XenServer 8.

Lorsque vous créez une machine virtuelle, une quantité fixe de mémoire est allouée à la machine virtuelle. Vous pouvez utiliser le contrôle dynamique de la mémoire (DMC) pour améliorer l’utilisation de la mémoire physique dans votre environnement d’hyperviseur Citrix. DMC est une fonctionnalité de gestion de la mémoire qui permet la réallocation dynamique de la mémoire entre les machines virtuelles.

XenCenter fournit un affichage graphique de l’utilisation de la mémoire dans son Mémoire onglet. Pour plus d’informations, consultez la page Documentation de XenCenter.

Le contrôle dynamique de la mémoire (DMC) offre les avantages suivants :

  • Vous pouvez ajouter ou supprimer de la mémoire sans redémarrer les machines virtuelles, ce qui offre une expérience transparente à l’utilisateur.

  • Lorsque les serveurs sont pleins, DMC vous permet de démarrer davantage de machines virtuelles sur ces serveurs, réduisant ainsi proportionnellement la quantité de mémoire allouée aux machines virtuelles en cours d’exécution.

Qu’est-ce que le contrôle dynamique de la mémoire (DMC) ?

Citrix Hypervisor DMC fonctionne en ajustant automatiquement la mémoire des machines virtuelles en cours d’exécution, en maintenant la quantité de mémoire allouée à chaque machine virtuelle entre les valeurs de mémoire minimale et maximale spécifiées, en garantissant les performances et en permettant une plus grande densité de machines virtuelles par serveur.

Sans DMC, lorsqu’un serveur est plein, le démarrage de machines virtuelles supplémentaires échoue avec des erreurs de « mémoire insuffisante ». Pour réduire l’allocation de mémoire de machine virtuelle existante et faire de la place pour d’autres machines virtuelles, modifiez l’allocation de mémoire de chaque machine virtuelle, puis redémarrez la machine virtuelle. Lors de l’utilisation de DMC, Citrix Hypervisor tente de récupérer de la mémoire en réduisant automatiquement l’allocation de mémoire actuelle des machines virtuelles en cours d’exécution dans leurs plages de mémoire définies. Citrix Hypervisor tente de récupérer de la mémoire même lorsque le serveur est plein.

Remarques  :

Le contrôle dynamique de la mémoire n’est pas pris en charge avec les machines virtuelles dotées d’un GPU virtuel.

Le concept de plage dynamique

Pour chaque machine virtuelle, l’administrateur peut définir une plage de mémoire dynamique. La plage de mémoire dynamique est la plage dans laquelle la mémoire peut être ajoutée/supprimée de la machine virtuelle sans nécessiter de redémarrage. Lorsqu’une machine virtuelle est en cours d’exécution, l’administrateur peut ajuster la plage dynamique. Citrix Hypervisor garantit toujours de conserver la quantité de mémoire allouée à la machine virtuelle dans la plage dynamique. Par conséquent, l’ajustement pendant l’exécution de la machine virtuelle peut amener Citrix Hypervisor à ajuster la quantité de mémoire allouée à la machine virtuelle. Le cas le plus extrême est celui où l’administrateur définit la dynamique min/max sur la même valeur, obligeant Citrix Hypervisor à s’assurer que cette quantité de mémoire est allouée à la machine virtuelle. Si les nouvelles machines virtuelles doivent démarrer sur des serveurs « pleins », la mémoire des machines virtuelles en cours d’exécution est « compressée » pour en démarrer de nouvelles. La mémoire supplémentaire requise est obtenue en comprimant proportionnellement les machines virtuelles existantes en cours d’exécution dans leurs plages dynamiques prédéfinies

DMC vous permet de configurer des niveaux de mémoire minimum et maximum dynamiques, en créant une plage de mémoire dynamique (DMR) dans laquelle la machine virtuelle fonctionne.

  • Mémoire minimale dynamique : limite de mémoire inférieure que vous attribuez à la machine virtuelle.

  • Limite supérieure dynamique : limite supérieure de mémoire que vous attribuez à la machine virtuelle.

Par exemple, si la mémoire minimale dynamique a été définie sur 512 Mo et la mémoire maximale dynamique a été définie sur 1 024 Mo, elle attribue à la machine virtuelle une plage de mémoire dynamique (DMR) de 512 à 1024 Mo, dans laquelle elle fonctionne. Hyperviseur Citrix Garanties toujours pour attribuer à chaque mémoire de machine virtuelle la mémoire DMR spécifiée lors de l’utilisation de DMC.

Le concept de plage statique

De nombreux systèmes d’exploitation pris en charge par Citrix Hypervisor ne « comprennent » pas entièrement la notion d’ajout ou de suppression dynamique de mémoire. Par conséquent, Citrix Hypervisor doit déclarer la quantité maximale de mémoire qu’une machine virtuelle est invitée à consommer au moment du redémarrage. La déclaration de la quantité maximale de mémoire permet au système d’exploitation invité de dimensionner ses tables de pages et autres structures de gestion de la mémoire en conséquence. Cela introduit le concept d’une plage de mémoire statique dans Citrix Hypervisor. La plage de mémoire statique ne peut pas être ajustée lorsque la machine virtuelle est en cours d’exécution. Pour une botte particulière, la plage dynamique est limitée de telle sorte qu’elle est toujours contenue dans cette plage statique. Le minimum statique (la limite inférieure de la plage statique) protège l’administrateur et est défini sur la quantité de mémoire la plus basse que le système d’exploitation peut exécuter avec Citrix Hypervisor.

Remarque :

Nous vous recommandons de ne pas modifier le niveau minimum statique, car le niveau minimum statique est défini au niveau pris en charge par système d’exploitation. Pour plus d’informations, consultez le tableau des contraintes de mémoire.

La définition d’un niveau maximum statique supérieur à un niveau maximal dynamique vous permet d’allouer plus de mémoire à une machine virtuelle à l’avenir sans redémarrer la machine virtuelle.

Comportement DMC

Compression automatique de la machine virtuelle

  • Si DMC n’est pas activé, lorsque les hôtes sont pleins, les nouveaux démarrages de machine virtuelle échouent avec des erreurs de « mémoire insuffisante ».

  • Lorsque DMC est activé, même lorsque les hôtes sont pleins, Citrix Hypervisor tente de récupérer de la mémoire en réduisant l’allocation de mémoire des machines virtuelles en cours d’exécution dans leurs plages dynamiques définies. De cette façon, les machines virtuelles en cours d’exécution sont comprimées proportionnellement à la même distance entre le minimum dynamique et le maximum dynamique pour toutes les machines virtuelles de l’hôte

Lorsque DMC est activé

  • Lorsque la mémoire de l’hôte est abondante : toutes les machines virtuelles en cours d’exécution reçoivent leur niveau de mémoire maximale dynamique

  • Lorsque la mémoire de l’hôte est rare, toutes les machines virtuelles en cours d’exécution reçoivent leur niveau de mémoire minimale dynamique.

Lorsque vous configurez DMC, n’oubliez pas que l’allocation d’une petite quantité de mémoire à une machine virtuelle peut avoir un impact négatif sur celle-ci. Par exemple, allouer trop peu de mémoire :

  • L’utilisation du contrôle dynamique de la mémoire pour réduire la quantité de mémoire physique disponible pour une machine virtuelle peut entraîner un redémarrage lent. De même, si vous allouez trop peu de mémoire à une machine virtuelle, celle-ci peut démarrer lentement.

  • Une définition trop faible de la mémoire dynamique minimale pour une machine virtuelle peut entraîner des performances médiocres ou des problèmes de stabilité au démarrage de la machine virtuelle.

Comment fonctionne DMC ?

À l’aide de DMC, il est possible d’exploiter une machine virtuelle invitée dans l’un des deux modes suivants :

  1. Mode cible : L’administrateur spécifie une cible de mémoire pour l’invité. Citrix Hypervisor ajuste l’allocation de mémoire de l’invité pour répondre à l’objectif. La spécification d’une cible est utile dans les environnements de serveurs virtuels et dans les situations où vous savez exactement combien de mémoire vous souhaitez qu’un invité utilise. Citrix Hypervisor ajuste l’allocation de mémoire de l’invité pour répondre à l’objectif que vous spécifiez.

  2. Mode de plage dynamique : L’administrateur spécifie une plage de mémoire dynamique pour l’invité. Citrix Hypervisor sélectionne une cible dans la plage et ajuste l’allocation de mémoire de l’invité pour répondre à la cible. La spécification d’une plage dynamique est utile dans toutes les situations où vous souhaitez que Citrix Hypervisor repartitionne la mémoire de l’hôte de manière dynamique en réponse à la modification du nombre d’invités ou à la modification de la sollicitation de la mémoire de l’hôte. Citrix Hypervisor sélectionne une cible dans la plage et ajuste l’allocation de mémoire de l’invité pour répondre à la cible.

Remarque :

Il est possible de basculer entre le mode cible et le mode de plage dynamique à tout moment pour n’importe quel invité en cours d’exécution. Spécifiez une nouvelle cible ou une nouvelle plage dynamique, et Citrix Hypervisor s’occupe du reste.

Contraintes de mémoire

Citrix Hypervisor permet aux administrateurs d’utiliser toutes les opérations de contrôle de la mémoire avec n’importe quel système d’exploitation invité. Toutefois, Citrix Hypervisor applique la contrainte d’ordre des propriétés de mémoire suivante pour tous les invités :

0 < memory-static-min <= memory-dynamic-min <= memory-dynamic-max <= memory-static-max

Citrix Hypervisor permet aux administrateurs de modifier les propriétés de la mémoire invitée en n’importe quelle valeur qui satisfait à cette contrainte, sous réserve de vérifications de validation. Toutefois, en plus de la contrainte précédente, nous ne prenons en charge que certaines configurations de mémoire invité pour chaque système d’exploitation pris en charge. La gamme de configurations prises en charge dépend du système d’exploitation invité utilisé. Citrix Hypervisor n’empêche pas les administrateurs de configurer les invités pour qu’ils dépassent la limite prise en charge. Toutefois, il est conseillé aux clients de maintenir les propriétés de la mémoire dans les limites prises en charge pour éviter les problèmes de performances ou de stabilité. Pour obtenir des instructions détaillées sur les limites de mémoire minimales et maximales pour chaque système d’exploitation pris en charge, reportez-vous à la section Prise en charge du système d’exploitation invité.

Avertissement :

Lors de la configuration de la mémoire invitée, nous vous conseillons de NE PAS dépasser la quantité maximale de mémoire physique pouvant être utilisée par votre système d’exploitation. La définition d’un maximum de mémoire supérieur à la limite prise en charge par le système d’exploitation peut entraîner des problèmes de stabilité au sein de votre invité.

Le minimum dynamique doit être d’au moins 75 % du maximum statique pour tous les systèmes d’exploitation pris en charge. Une limite inférieure peut entraîner des problèmes de stabilité. Les administrateurs sont encouragés à calibrer soigneusement la taille de leurs machines virtuelles et à s’assurer que leur ensemble d’applications de travail fonctionne de manière fiable au minimum dynamique.

Commandes de l’interface de ligne de commande xe

Afficher les propriétés de la mémoire statique d’une machine virtuelle

  1. Trouvez l’UUID de la machine virtuelle requise :

      xe vm-list
    <!--NeedCopy-->
    
  2. Notez l’uuid, puis exécutez la commande param-name=mémoire-statique

      xe vm-param-get uuid=uuid param-name=memory-static-{min,max}
    <!--NeedCopy-->
    

    Par exemple, ce qui suit affiche les propriétés de mémoire maximale statique pour la machine virtuelle dont l’UUID commence par ec77 :

      xe vm-param-get uuid= \
          ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \
          param-name=memory-static-max;
          268435456
    <!--NeedCopy-->
    

    L’exemple montre que la mémoire maximale statique de cette machine virtuelle est de 268 435 456 octets (256 Mo).

Afficher les propriétés de mémoire dynamique d’une machine virtuelle

Pour afficher les propriétés de la mémoire dynamique, suivez la procédure ci-dessus, mais utilisez la commande param-name=mémoire-dynamique:

  1. Trouvez l’UUID de la machine virtuelle requise :

      xe vm-list
    <!--NeedCopy-->
    
  2. Notez l’uuid, puis exécutez la commande param-name=mémoire-dynamique:

      xe vm-param-get uuid=uuid param-name=memory-dynamic-{min,max}
    <!--NeedCopy-->
    

    Par exemple, ce qui suit affiche les propriétés de mémoire maximale dynamique pour la machine virtuelle avec l’UUID commençant ec77

      xe vm-param-get uuid= \
          ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \
          param-name=memory-dynamic-max;
          134217728
    <!--NeedCopy-->
    

    L’exemple montre que la mémoire dynamique maximale de cette machine virtuelle est de 134 217 728 octets (128 Mo).

Mettre à jour les propriétés de la mémoire

Avertissement :

Utilisez l’ordre correct lors du réglage des paramètres minimum/maximum statiques/dynamiques. De plus, vous ne devez pas invalider la contrainte suivante :

0 < memory-static-min <= memory-dynamic-min <= memory-dynamic-max <= memory-static-max

Mettez à jour la plage de mémoire statique d’une machine virtuelle :

  xe vm-memory-static-range-set uuid=uuid min=value max=value
<!--NeedCopy-->

Mettez à jour la plage de mémoire dynamique d’une machine virtuelle :

  xe vm-memory-dynamic-range-set \
        uuid=uuid min=value \
        max=value
<!--NeedCopy-->

La spécification d’une cible est utile dans les environnements de serveurs virtuels et dans toute situation où vous savez exactement combien de mémoire vous souhaitez qu’un invité utilise. Citrix Hypervisor ajuste l’allocation de mémoire de l’invité pour répondre à l’objectif que vous spécifiez. Par exemple :

  xe vm-memory-target-set target=value vm=vm-name
<!--NeedCopy-->

Mettre à jour toutes les limites de mémoire (statique et dynamique) d’une machine virtuelle :

  xe vm-memory-limits-set \
        uuid=uuid \
        static-min=value \
        dynamic-min=value \
        dynamic-max=value static-max=value
<!--NeedCopy-->

Remarques  :

  • Pour allouer une quantité spécifique de mémoire à une machine virtuelle qui ne change pas, définissez le maximum dynamique et le minimum dynamique sur la même valeur.
  • Vous ne pouvez pas augmenter la mémoire dynamique d’une machine virtuelle au-delà du maximum statique.
  • Pour modifier le maximum statique d’une machine virtuelle, vous devez arrêter la machine virtuelle.

Mettre à jour les propriétés de mémoire individuelles

Avertissement :

Ne modifiez pas le niveau minimum statique car il est défini au niveau pris en charge par système d’exploitation. Pour plus d’informations, consultez Contraintes de mémoire.

Mettez à jour les propriétés de mémoire dynamique d’une machine virtuelle.

  1. Trouvez l’UUID de la machine virtuelle requise :

      xe vm-list
    <!--NeedCopy-->
    
  2. Notez l’uuid, puis utilisez la commande mémoire-dynamique-{min,max}=valeur

      xe vm-param-set uuid=uuid memory-dynamic-{min,max}=value
    <!--NeedCopy-->
    

L’exemple suivant modifie la dynamique maximale à 128 Mo :

  xe vm-param-set uuid=ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 memory-dynamic-max=128MiB
<!--NeedCopy-->
Mémoire VM