Guide d'administration système : Gestion des ressources des conteneurs et des zones Oracle Solaris

Chapitre 11 Administration du démon d'allocation restrictive (tâches)

Ce chapitre présente les procédures à suivre pour configurer et utiliser le démon d'allocation restrictive rcapd.

Pour avoir un aperçu de rcapd, reportez-vous au Chapitre 10Contrôle de la mémoire physique à l'aide du démon d'allocation restrictive (présentation).

Configuration et utilisation du démon d'allocation restrictive (Liste des tâches)

Tâche 

Description 

Voir 

Définir le seuil d'allocation restrictive de la mémoire 

Configurez le niveau d'allocation maximum alloué lorsque la mémoire physique disponible est insuffisante. 

Définition du seuil d'allocation restrictive de la mémoire

Définir l'intervalle d'opération 

Indiquez l'intervalle pendant lequel le démon d'allocation restrictive effectue ses opérations périodiques. 

Définition des intervalles de fonctionnement

Activer la limitation des ressources 

Activez la limitation des ressources sur votre système. 

Activation de la limitation des ressources

Désactiver la limitation des ressources 

Désactivez la limitation des ressources sur votre système. 

Désactivation de la limitation des ressources

Générer des rapports sur la limitation des ressources et sur le projet 

Produisez des rapports à l'aide des exemples de commandes proposés. 

Création d'un rapport sur la limitation des ressources et sur le projet

Contrôler la taille résidente définie d'un projet 

Établissez un rapport sur la taille résidente définie d'un projet. 

Contrôle de la taille résidente définie d'un projet

Déterminer la taille de charge de travail définie d'un projet 

Établissez un rapport sur la taille de fonctionnement définie d'un projet. 

Détermination de la taille de la charge de travail définie d'un projet

Obtenir un rapport sur l'utilisation de la mémoire et les limitations définies en la matière 

Affichez une ligne relative à l'utilisation de la mémoire et au seuil d'allocation restrictive à la fin du rapport pour chaque intervalle défini. 

Création d'un rapport sur l'utilisation de la mémoire et le seuil d'allocation restrictive

Administration du démon d'allocation restrictive avec rcapadm

Cette section présente les procédures à suivre pour configurer le démon d'allocation restrictive à l'aide de la commande rcapadm. Pour plus d'informations, reportez-vous à la section Configuration de la commande rcapd et à la page de manuel rcapadm(1M). Cette section aborde également la spécification de limitations temporaires de ressources pour une zone à l'aide de la commande rcapadm.

En l'absence d'argument, rcapadm affiche l'état actuel du démon d'allocation restrictive s'il a été configuré.

ProcedureDéfinition du seuil d'allocation restrictive de la mémoire

Il est possible de configurer les seuils d'allocation restrictive de façon à les appliquer uniquement lorsque la mémoire physique mise à la disposition des processus ne suffit plus. Pour plus d'informations, reportez-vous à la section Seuil d'allocation restrictive de la mémoire.

La valeur minimum (valeur par défaut) est de 0. Elle permet d'appliquer systématiquement les seuils d'allocation restrictive. Pour changer la valeur minimum, procédez de la façon suivante.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle incluant le profil Gestion des processus.

    Ce profil fait partie des prérogatives de l'administrateur système. Pour savoir comment créer ce rôle et l'assigner à un utilisateur, reportez-vous à la section relative à la gestion RBAC (liste des tâches) du System Administration Guide: Security Services.

  2. Utilisez l'option -c de la commande rcapadm pour redéfinir le niveau d'utilisation de la mémoire physique pour le seuil d'allocation restrictive de la mémoire.


    # rcapadm -c percent
    

    Le pourcentage est compris entre 0 et 100. Les valeurs élevées sont moins restrictives. Autrement dit, une valeur élevée signifie qu'il est possible d'effectuer les charges de travail d'un projet (pour lequel une allocation restrictive de la mémoire a été définie) en s'affranchissant des limitations prévues tant que le seuil d'utilisation de la mémoire du système n'est pas atteint.

Voir aussi

Pour afficher le niveau actuel d'utilisation de la mémoire physique et le seuil d'allocation restrictive, reportez-vous à la section Création d'un rapport sur l'utilisation de la mémoire et le seuil d'allocation restrictive.

ProcedureDéfinition des intervalles de fonctionnement

La section Intervalles des opérations rcapd contient des informations sur les intervalles des opérations périodiques réalisées par rcapd. Pour définir ces intervalles à l'aide de la commande rcapadm, procédez de la façon suivante.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle incluant le profil Gestion des processus.

    Ce profil fait partie des prérogatives de l'administrateur système. Pour savoir comment créer ce rôle et l'assigner à un utilisateur, reportez-vous à la section relative à la gestion RBAC (liste des tâches) du System Administration Guide: Security Services.

  2. Utilisez l'option -i pour définir les valeurs des intervalles.


    # rcapadm -i interval=value,...,interval=value 
    

    Remarque –

    Les intervalles sont tous exprimés en secondes.


ProcedureActivation de la limitation des ressources

Vous disposez de trois modes d'activation de la limitation des ressources sur votre système. L'activation de la limitation des ressources permet également de définir les valeurs par défaut du fichier /etc/rcap.conf.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle incluant le profil Gestion des processus.

    Ce profil fait partie des prérogatives de l'administrateur système. Pour savoir comment créer ce rôle et l'assigner à un utilisateur, reportez-vous à la section relative à la gestion RBAC (liste de tâches du System Administration Guide: Security Services.

  2. Activez le démon d'allocation restrictive de l'une des façons suivantes :

    • Activez la limitation des ressources à l'aide de la commande svcadm.


      # svcadm enable rcap
      
    • Pour activer le démon d'allocation restrictive de façon à le démarrer dès maintenant et à chaque démarrage du système, entrez l'instruction suivante :


      # rcapadm -E
      
    • Pour activer le démon d'allocation restrictive uniquement au démarrage en spécifiant l'option -n, entrez l'instruction suivante :


      # rcapadm -n -E
      

ProcedureDésactivation de la limitation des ressources

Vous disposez de trois modes de désactivation de la limitation des ressources sur votre système.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle incluant le profil Gestion des processus.

    Ce profil fait partie des prérogatives de l'administrateur système. Pour savoir comment créer ce rôle et l'assigner à un utilisateur, reportez-vous à la section relative à la gestion RBAC (liste de tâches du System Administration Guide: Security Services.

  2. Désactivez le démon d'allocation restrictive de l'une des façons suivantes :

    • Désactivez la limitation des ressources à l'aide de la commande svcadm.


      # svcadm disable rcap
      
    • Pour désactiver le démon d'allocation restrictive de façon à l'arrêter dès maintenant et à chaque démarrage du système, entrez l'instruction suivante :


      # rcapadm -D
      
    • Pour désactiver le démon d'allocation restrictive sans l'arrêter, spécifiez également l'option -n :


      # rcapadm -n -D
      

    Astuce –

    Désactivation du démon d'allocation restrictive en toute sécurité


    Servez-vous de la commande svcadm ou de la commande rcapadm avec l'option -D pour désactiver rcapd en toute sécurité. En cas d'interruption du démon (voir la page de manuel kill(1)), les processus risquent d'être maintenus à l'arrêt et vous devrez alors les redémarrer manuellement. Pour reprendre un processus, servez-vous de la commande prun. Pour plus d'informations, voir la page de manuel prun(1).

ProcedureSpécification d'une limitation temporaire de ressources pour une zone

Cette procédure est utilisée pour allouer la quantité maximale de mémoire pouvant être utilisée par une zone spécifique. Cette valeur reste valide uniquement jusqu'au prochain redémarrage. Pour définir une limitation persistante, utilisez la commande zonecfg.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle incluant le profil Gestion des processus.

    Ce profil fait partie des prérogatives de l'administrateur système.

  2. Définissez une valeur de mémoire maximale de 512 Mo pour la zone my-zone.


    # rcapadm -z testzone -m 512M
    

Établissement de rapports à l'aide de la commande rcapstat

Servez-vous de la commande rcapstat pour obtenir des rapports statistiques sur la limitation des ressources. La section Contrôle des ressources à l'aide de rcapstat explique comment générer des rapports à l'aide de la commande rcapstat. Cette section décrit également les en-têtes de colonne du rapport. Ces informations sont détaillées également dans la page de manuel rcapstat(1).

Les sous-sections suivantes illustrent par des exemples le mode de création de divers rapports.

Création d'un rapport sur la limitation des ressources et sur le projet

Dans cet exemple, les limitations s'appliquent à deux projets associés à deux utilisateurs. user1 est limité à 50 méga-octets alors que user2 est limité à 10 méga-octets.

La commande suivante permet d'obtenir cinq rapports à intervalle de 5 secondes.


user1machine% rcapstat 5 5
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M   50M    0K 3312K    0K
 78194   user2      1  2368K  1856K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1856K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K 

Les trois premières lignes de la sortie correspondent au premier rapport. Celui-ci contient des informations relatives aux limitations et au projet pour les deux projets et des statistiques de pagination depuis le démarrage de rcapd. Les colonnes at et pg contiennent un nombre supérieur à zéro pour user1 et zéro pour user2, ce qui signifie qu'à un moment donné dans l'historique du démon, user1 a dépassé la limite fixée, à l'inverse de user2.

Les rapports suivants ne font état d'aucune activité significative.

Contrôle de la taille résidente définie d'un projet

L'exemple suivant contient des informations sur le user1 du projet pour lequel la taille résidente définie dépasse le seuil défini en la matière.

La commande suivante permet d'obtenir cinq rapports à intervalle de 5 secondes.


user1machine% rcapstat 5 5

    id project  nproc    vm   rss   cap    at avgat     pg  avgpg
376565   user1      3 6249M 6144M 6144M  690M  220M  5528K  2764K
376565   user1      3 6249M 6144M 6144M    0M  131M  4912K  1637K
376565   user1      3 6249M 6171M 6144M   27M  147M  6048K  2016K
376565   user1      3 6249M 6146M 6144M 4872M  174M  4368K  1456K
376565   user1      3 6249M 6156M 6144M   12M  161M  3376K  1125K

Comme vous pouvez le constater, trois processus du projet de user1 font un usage intensif de la mémoire physique. Les valeurs positives de la colonne pg signifient que la commande rcapd renvoie une page de mémoire lorsqu'elle essaie de se conformer au seuil fixé en limitant la mémoire physique utilisée par les processus du projet. rcapd ne parvient pas, cependant, à maintenir la taille résidente définie en dessous de la valeur limite comme le prouvent les différentes valeurs rss qui ne montrent pas une réduction correspondante. Dès qu'une page de mémoire est déchargée, la charge de travail l'exploite à nouveau et la taille résidente définie augmente. Cela signifie que l'intégralité de la mémoire résidente du projet est utilisée de façon active et que la taille de travail définie (WSS) est supérieure au seuil fixé. La commande rcapd doit, dans ce cas, décharger une partie de la taille de travail pour éviter de dépasser ce seuil. Le système continuera à connaître un nombre important de défauts de page et d'erreurs E/S associées, jusqu'à ce que l'une des conditions suivantes soit remplie :

Dans ce type de situation, raccourcir l'intervalle peut limiter l'écart entre la valeur de la taille résidente définie et la valeur limite en permettant à la commande rcapd d'analyser la charge de travail et d'appliquer les limitations plus fréquemment.


Remarque –

Un défaut de page se produit lorsqu'il devient nécessaire de créer une nouvelle page ou lorsque le système est dans l'obligation de copier une page à partir d'un périphérique de swap.


Détermination de la taille de la charge de travail définie d'un projet

L'exemple suivant est une suite logique de l'exemple précédent et se base sur le même projet.

L'exemple précédent montre que le projet user1 utilise plus de mémoire physique que le permet en théorie le seuil fixé. L'exemple suivant montre la quantité de mémoire nécessaire pour assurer la charge de travail du projet.


user1machine% rcapstat 5 5
    id project  nproc    vm   rss   cap    at avgat     pg  avgpg
376565   user1      3 6249M 6144M 6144M  690M    0K   689M     0K
376565   user1      3 6249M 6144M 6144M    0K    0K     0K     0K
376565   user1      3 6249M 6171M 6144M   27M    0K    27M     0K
376565   user1      3 6249M 6146M 6144M 4872K    0K  4816K     0K
376565   user1      3 6249M 6156M 6144M   12M    0K    12M     0K
376565   user1      3 6249M 6150M 6144M 5848K    0K  5816K     0K
376565   user1      3 6249M 6155M 6144M   11M    0K    11M     0K
376565   user1      3 6249M 6150M   10G   32K    0K    32K     0K
376565   user1      3 6249M 6214M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K

Vers la moitié du cycle, la limite prévue pour le projet user1 a été augmentée de 6 à 10 giga-octets. Cette hausse empêche la mise en œuvre de l'allocation restrictive et a pour effet d'accroître la taille résidente définie dans la limite fixée par les autres processus et en fonction de la quantité de mémoire installée. Les valeurs de la colonne rss auront tendance à se stabiliser pour refléter la taille de la charge de travail définie du projet (6 247 Mo dans cet exemple). Il s'agit de la valeur minimum d'allocation restrictive nécessaire au fonctionnement des processus du projet sans que cela n'engendre des défauts de page continus.

Tant que la valeur limite du projet user1 sera égale à 6 s par intervalle de 5 secondes, la taille résidente définie diminuera et les E/S augmenteront au fur et à mesure que la commande rcapd décharge des pages de la mémoire réservée à la charge de travail. Peu de temps après le déchargement d'une page, la charge de travail aura pour effet de les recharger en mémoire pour continuer son exécution. Ce cycle se reproduit jusqu'à ce que le seuil passe à 10 giga-octets, à mi-chemin de l'exemple. La taille résidente définie se stabilise ensuite à 6,1 giga-octets. Comme la taille résidente définie de la charge de travail est désormais inférieure au seuil fixé, plus aucun transfert de page n'a lieu. Les E/S associées à la pagination cessent également. Autrement dit, le projet a eu besoin de 6,1 Go pour effectuer le travail en cours de traitement au moment de son observation.

Voir aussi les pages de manuel vmstat(1M) et iostat(1M).

Création d'un rapport sur l'utilisation de la mémoire et le seuil d'allocation restrictive

Vous pouvez associer l'option -g à la commande rcapstat pour générer un rapport sur les données suivantes :

L'option -g permet d'afficher une ligne sur l'utilisation de la mémoire et l'allocation restrictive de la mémoire à la fin du rapport pour chaque intervalle.


# rcapstat -g
    id project   nproc    vm   rss   cap    at avgat   pg  avgpg
376565    rcap       0    0K    0K   10G    0K    0K   0K     0K
physical memory utilization: 55%   cap enforcement threshold: 0%
    id project   nproc    vm   rss   cap    at avgat   pg  avgpg
376565    rcap       0    0K    0K   10G    0K    0K   0K     0K
physical memory utilization: 55%   cap enforcement threshold: 0%