Guide d'administration d'Oracle® VM Server for SPARC 3.3

Quitter la vue de l'impression

Mis à jour : Octobre 2015
 
 

Utilisation de la reconfiguration dynamique de la mémoire

La reconfiguration dynamique (DR) de la mémoire repose sur la capacité et vous permet d'ajouter ou de supprimer une quantité quelconque de mémoire dans un domaine logique actif.

    Voici les contraintes et les restrictions d'utilisation de la fonction de reconfiguration dynamique de mémoire :

  • Vous pouvez effectuer des opérations de reconfiguration dynamique sur tous les domaines. Cependant, une seule opération de DR de mémoire peut être en cours sur un domaine à un moment donné.

  • La fonction de DR de mémoire force un alignement de 256 Mo sur l'adresse et la taille de la mémoire impliquée dans une opération donnée. Voir la section Alignement de la mémoire.

  • La mémoire non alignée dans le pool de mémoire libre ne peut pas être assignée à un domaine à l'aide de la fonction de reconfiguration dynamique de mémoire. Reportez-vous à la section Ajout de mémoire non alignée.

Si la mémoire d'un domaine ne peut pas être reconfigurée à l'aide d'une opération de DR de mémoire, le domaine doit être arrêté avant que la mémoire ne soit configurée. Si le domaine est le domaine de contrôle, vous devez d'abord lancer une reconfiguration retardée.

Dans certaines circonstances, Logical Domains Manager arrondit l'allocation de mémoire requise au multiple supérieur suivant de 8 kilo-octets ou 4 mégaoctets. L'exemple suivant présente une sortie de la commande ldm list-domain -l, où la valeur de contrainte est inférieure à la taille réelle allouée :

Memory:
          Constraints: 1965 M
          raddr          paddr5          size
          0x1000000      0x291000000     1968M

Ajout de mémoire

Si un domaine est actif, vous pouvez utiliser la commande ldm add-memory pour ajouter de la mémoire de manière dynamique au domaine. La commande ldm set-memory ajoute également de manière dynamique de la mémoire si la taille de la mémoire indiquée est supérieure à la taille de la mémoire actuelle du domaine.

Suppression de mémoire

Si un domaine est actif, vous pouvez utiliser la commande ldm remove-memory pour supprimer de la mémoire de manière dynamique au domaine. La commande ldm set-memory supprime également de manière dynamique de la mémoire si la taille de la mémoire indiquée est inférieure à la taille de la mémoire actuelle du domaine.

La suppression de mémoire peut être une opération nécessitant beaucoup de temps. Vous pouvez suivre la progression d'une commande ldm remove-memory en exécutant la commande ldm list -l pour le domaine indiqué.

Vous pouvez annuler une demande de suppression en cours en interrompant la commande ldm remove-memory command (en appuyant sur Control-C) ou en émettant la commande ldm cancel-operation memdr. Si vous annulez une demande de suppression de mémoire, seule la partie restante de la demande de suppression est affectée, c'est-à-dire la quantité de mémoire devant encore être supprimée du domaine.

Demandes partielles de reconfiguration dynamique de mémoire

Il est possible qu'une demande d'ajout ou de suppression dynamique de mémoire dans un domaine ne soit pas effectuée dans sa totalité. Les résultats dépendent des capacités d'ajout et de suppression de la mémoire.


Remarque - La mémoire est effacée après sa suppression d'un domaine et avant d'être ajoutée à un autre domaine.

Reconfiguration de la mémoire du domaine de contrôle

Vous pouvez utiliser la fonction de reconfiguration dynamique de la mémoire pour reconfigurer la mémoire du domaine de contrôle. Si une demande de DR de mémoire ne peut pas être effectuée sur le domaine de contrôle, vous devez d'abord lancer une reconfiguration retardée.

L'utilisation de la reconfiguration dynamique de mémoire peut ne pas être adaptée à la suppression de grandes quantités de mémoire sur un domaine actif, car les opérations de reconfiguration dynamique de mémoire prennent beaucoup de temps. Surtout au cours de la configuration initiale du système, vous devez utiliser la reconfiguration retardée pour réduire la mémoire dans le domaine de contrôle.

Réduction de la mémoire du domaine de contrôle

Utilisez une reconfiguration retardée au lieu d'une reconfiguration dynamique de mémoire pour réduire la mémoire du domaine de contrôle dans une configuration usine par défaut initiale. Dans un tel cas, le domaine de contrôle possède toute la mémoire du système hôte. La fonction de reconfiguration dynamique de la mémoire n'est pas adaptée à cet objectif, car il n'est pas certain qu'un domaine actif ajoute, ou plus généralement qu'il supprime toute la mémoire demandée. Au lieu de cela, le SE s'exécutant sur ce domaine fait de son mieux pour remplir la demande. Par ailleurs, la suppression de mémoire peut être une opération de longue durée. Ces problèmes sont amplifiés lorsque des opérations importantes sur la mémoire sont impliquées, comme c'est le cas pour la réduction initiale de la mémoire du domaine de contrôle.

Pour ces raisons, utilisez une reconfiguration retardée en procédant comme suit :

  1. Utilisez la commande ldm start-reconf primary pour mettre le domaine de contrôle en mode de reconfiguration retardée.

  2. Partitionnez les ressources du système hôte qui détenues par le domaine de contrôle, si nécessaire.

  3. Utilisez la commande ldm cancel-reconf pour annuler les opérations de l'étape 2, si nécessaire, et recommencez.

  4. Réinitialisez le domaine de contrôle pour appliquer les modifications.

Reconfiguration dynamique et retardée

Si une reconfiguration retardée est en attente sur le domaine de contrôle, une demande de reconfiguration de la mémoire est rejetée pour tous les autres domaines. Si aucune reconfiguration retardée n'est en attente dans le domaine de contrôle, la demande de reconfiguration de la mémoire est rejetée pour tout domaine qui ne prend pas en charge la reconfiguration dynamique de la mémoire. Pour ces domaines, la demande est convertie en demande de reconfiguration retardée.

Alignement de la mémoire

Les demandes de reconfiguration de la mémoire ont différentes contraintes d'alignement qui dépendent de l'état du domaine sur lequel la demande est appliquée.

Alignement de la mémoire pour les domaines actifs

  • Ajout et suppression dynamiques. L'adresse et la taille d'un bloc de mémoire sont alignées à 256 Mo pour un ajout et une suppression dynamiques. La taille de fonctionnement minimale est de 256 Mo.

    Une demande non alignée ou une demande de suppression supérieure à la taille associée est rejetée.

      Utilisez les commandes suivantes pour ajuster les allocations de mémoire :

    • ldm add-memory. Si vous spécifiez l'option –-auto-adj avec cette commande, la quantité de mémoire à ajouter est alignée à 256 Mo, ce qui peut accroître la quantité de mémoire effectivement ajoutée au domaine.

    • ldm remove-memory. Si vous spécifiez l'option –-auto-adj avec cette commande, la quantité de mémoire à supprimer est alignée à 256 Mo, ce qui peut diminuer la quantité de mémoire effectivement supprimée du domaine.

    • ldm set-memory. Cette commande est traitée comme une opération d'ajout ou de suppression. Si vous indiquez l'option –-auto-adj, la quantité de mémoire à ajouter ou à supprimer est alignée sur 256 Mo comme décrit précédemment. Notez que cet alignement peut augmenter la taille de la mémoire obtenue pour le domaine.

  • Reconfiguration retardée. L'adresse et la taille d'un bloc de mémoire sont alignées à 4 Mo. Si vous faites une demande non alignée, la demande est arrondie à un alignement à 4 Mo.

Alignement de la mémoire pour les domaines liés

L'adresse et la taille d'un bloc de mémoire sont alignées à 4 Mo pour les domaines liés. Si vous faites une demande non alignée, la demande est arrondie à un alignement à 4 Mo. Par conséquent, la taille de la mémoire obtenue pour le domaine peut être supérieure à celle indiquée.

Pour les commandes ldm add-memory, ldm set-memory et ldm remove-memory, l'option –-auto-adj arrondit la taille de la mémoire obtenue sur 256 Mo. Par conséquent, la taille de la mémoire obtenue peut être supérieure à celle indiquée.

Alignement de la mémoire pour les domaines inactifs

Pour les commandes ldm add-memory, ldm set-memory et ldm remove-memory, l'option –-auto-adj arrondit la taille de la mémoire obtenue sur 256 Mo. Il n'y a aucune contrainte d'alignement pour un domaine inactif. Les restrictions décrites à la section Alignement de la mémoire pour les domaines liés prennent effet dès qu'un tel domaine est associé.

Ajout de mémoire non alignée

La fonction de reconfiguration dynamique de la mémoire force un alignement de mémoire de 256 Mo sur l'adresse et la taille de la mémoire qui est ajoutée de manière dynamique à un domaine actif ou supprimée de ce dernier. Par conséquent, la mémoire non alignée dans un domaine actif ne peut pas être supprimée à l'aide de la reconfiguration dynamique de la mémoire.

De même, toute mémoire non alignée dans le pool de mémoire libre ne peut pas être ajoutée à un domaine actif à l'aide de la reconfiguration dynamique de la mémoire.

Après que toute la mémoire alignée a été allouée, vous pouvez utiliser la commande ldm add-memory pour ajouter la mémoire restante non alignée à un domaine lié ou inactif. Vous pouvez également utiliser cette commande pour ajouter la mémoire non alignée restante au domaine de contrôle au moyen d'une opération de reconfiguration retardée.

L'exemple suivant montre comment ajouter les deux blocs de mémoire de 128 Mo restants aux domaines primary et ldg1. Le domaine ldom1 est à l'état associé.

La commande suivante lance une opération de reconfiguration retardée sur le domaine de contrôle.

primary# ldm start-reconf primary
Initiating a delayed reconfiguration operation on the primary domain.
All configuration changes for other domains are disabled until the
primary domain reboots, at which time the new configuration for the
primary domain also takes effect.

La commande suivante ajoute l'un des blocs de mémoire de 128 Mo au domaine de contrôle.

primary# ldm add-memory 128M primary
------------------------------------------------------------------------------
Notice: The primary domain is in the process of a delayed reconfiguration.
Any changes made to the primary domain will only take effect after it reboots.
------------------------------------------------------------------------------

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -ndcv-  SP      8     2688M    0.1%  23d 8h 8m

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      8     2560M    0.5%  23d 8h 9m
ldom1            bound      ------  5000    1     524M

La commande suivante ajoute l'autre bloc de mémoire de 128 Mo au domaine ldom1.

primary# ldm add-mem 128M ldom1
primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      8     2560M    0.1%  23d 8h 9m
ldom1            bound      ------  5000    1     652M

Exemples de reconfiguration dynamique de mémoire

Les exemples suivants montrent comment effectuer des opérations de reconfiguration dynamique de la mémoire. Pour plus d'informations sur les commandes de la CLI correspondantes, reportez-vous à la page de manuel ldm(1M).

Exemple 14-7  Opérations de reconfiguration dynamique de la mémoire sur des domaines actifs

Cet exemple montre comment ajouter de la mémoire de manière dynamique et comment la supprimer d'un domaine actif, ldom1.

La sortie ldm list montre la mémoire pour chaque domaine dans la zone Memory.

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.4%  1d 22h 53m
ldom1            active     -n----  5000    2     2G       0.4%  1d 1h 23m
ldom2            bound      ------  5001    2     200M

La commande ldm add-mem se solde par une erreur, car vous devez indiquer la mémoire en multiples de 256 Mo. La commande suivante ldm add-mem utilise l'option –-auto-adj pour que la quantité de mémoire soit arrondie à 256 Mo bien que vous indiquiez 200M comme la quantité de mémoire à ajouter.

primary# ldm add-mem 200M ldom1
The size of memory must be a multiple of 256MB.

primary# ldm add-mem --auto-adj 200M ldom1
Adjusting request size to 256M.
The ldom1 domain has been allocated 56M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME            STATE   FLAGS   CONS    VCPU    MEMORY  UTIL    UPTIME
primary         active  -n-cv-  SP      4       27392M  5.0%    8m
ldom1           active  -n----  5000    2       2304M   0.5%    1m
ldom2           bound   ------  5001    2       200M

La commande ldm rm-mem existe avec une erreur, car vous devez indiquer la mémoire en multiples de 256 Mo. Lorsque vous ajoutez l'option –-auto-adj à cette même commande, la suppression de mémoire aboutit, car la quantité de mémoire est arrondie à la limite suivante de 256 Mo.

primary# ldm rm-mem --auto-adj 300M ldom1
Adjusting requested size to 256M.
The ldom1 domain has been allocated 44M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME            STATE   FLAGS   CONS    VCPU    MEMORY  UTIL    UPTIME
primary         active  -n-cv-  SP      4       27392M  0.3%    8m
ldom1           active  -n----  5000    2       2G      0.2%    2m
ldom2           bound   ------  5001    2       200M
Exemple 14-8  Opérations de reconfiguration dynamique de la mémoire sur des domaines liés

Cet exemple montre comment ajouter de la mémoire de manière dynamique et comment la supprimer d'un domaine lié, ldom2.

La sortie ldm list montre la mémoire pour chaque domaine dans la zone Memory. La première commande ldm add-mem ajoute 100 Mo de mémoire au domaine ldom2. La commande suivante ldm add-mem définit l'option –-auto-adj, qui provoque l'ajout dynamique de 112 Mo supplémentaires à ldom2.

La commande ldm rm-mem supprime de manière dynamique 100 Mo au domaine ldom2. Si vous indiquez l'option –-auto-adj à cette même commande pour supprimer 300 Mo de mémoire, la quantité de mémoire est arrondie à la limite inférieure suivante de 256 Mo.

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.4%  1d 22h 53m
ldom1            active     -n----  5000    2     2G       0.4%  1d 1h 23m
ldom2            bound      ------  5001    2     200M          

primary# ldm add-mem 100M ldom2

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.5%  1d 22h 54m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 25m
ldom2            bound      ------  5001    2     300M       

primary# ldm add-mem --auto-adj 100M ldom2
Adjusting request size to 256M.
The ldom2 domain has been allocated 112M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.4%  1d 22h 55m
ldom1            active     -n----  5000    2     2G       0.5%  1d 1h 25m
ldom2            bound      ------  5001    2     512M          

primary# ldm rm-mem 100M ldom2
primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   3.3%  1d 22h 55m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 25m
ldom2            bound      ------  5001    2     412M          

primary# ldm rm-mem --auto-adj 300M ldom2
Adjusting request size to 256M.
The ldom2 domain has been allocated 144M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.5%  1d 22h 55m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 26m
ldom2            bound      ------  5001    2     256M
Exemple 14-9  Définition des tailles de mémoire du domaine

Cet exemple montre comment utiliser la commande ldm set-memory pour ajouter de la mémoire à un domaine et en supprimer.

La sortie ldm list montre la mémoire pour chaque domaine dans la zone Memory.

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.5%  1d 22h 55m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 26m
ldom2            bound      ------  5001    2     256M

La commande ldm set-mem tente de définir la taille du domaine primary à 3 400 Mo. L'erreur résultant indique que la valeur indiquée ne se trouve pas dans la limite de 256 Mo. L'ajout de l'option –-auto-adj à cette même commande vous permet de supprimer avec succès de la mémoire et de rester dans la limite de 256 Mo. Cette commande émet également un avertissement pour indiquer que la totalité de la mémoire demandée n'a pas pu être supprimée, car le domaine utilise cette mémoire.

primary# ldm set-mem 3400M primary
An ldm set-mem 3400M command would remove 23992MB, which is not a multiple
of 256MB. Instead, run ldm rm-mem 23808MB to ensure a 256MB alignment.

primary# ldm set-mem --auto-adj 3400M primary
Adjusting request size to 3.4G.
The primary domain has been allocated 184M more memory
than requested because of memory alignment constraints.
Only 9472M of memory could be removed from the primary domain
because the rest of the memory is in use.

La commande ldm set-mem définit la taille de la mémoire du domaine ldom2, qui est à l'état lié, à 690 Mo. Si vous ajoutez l'option –-auto-adj à cette même commande, 78 Mo supplémentaires de mémoire sont ajoutés de manière dynamique à ldom2 pour rester dans une limite de 256 Mo.

primary# ldm set-mem 690M ldom2
primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     17920M   0.5%  1d 22h 56m
ldom1            active     -n----  5000    2     2G       0.6%  1d 1h 27m
ldom2            bound      ------  5001    2     690M          

primary# ldm set-mem --auto-adj 690M ldom2
Adjusting request size to 256M.
The ldom2 domain has been allocated 78M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     17920M   2.1%  1d 22h 57m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 27m
ldom2            bound      ------  5001    2     768M