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).
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éfinir l'intervalle d'opération |
Indiquez l'intervalle pendant lequel le démon d'allocation restrictive effectue ses opérations périodiques. | |
Activer la limitation des ressources |
Activez la limitation des ressources sur votre système. | |
Désactiver la limitation des ressources |
Désactivez la limitation des ressources sur votre système. | |
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. | |
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 |
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é.
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.
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.
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.
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.
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.
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.
Utilisez l'option -i pour définir les valeurs des intervalles.
# rcapadm -i interval=value,...,interval=value |
Les intervalles sont tous exprimés en secondes.
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.
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.
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 |
Vous disposez de trois modes de désactivation de la limitation des ressources sur votre système.
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.
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 |
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).
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.
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.
Définissez une valeur de mémoire maximale de 512 Mo pour la zone my-zone.
# rcapadm -z testzone -m 512M |
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.
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.
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 :
La taille de la charge de travail définie est abaissée.
Le seuil limite est augmenté.
L'application change son mode d'accès à la mémoire.
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.
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.
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).
Vous pouvez associer l'option -g à la commande rcapstat pour générer un rapport sur les données suivantes :
Pourcentage d'utilisation actuelle de la mémoire physique par rapport à la mémoire physique installée sur le système
Seuil d'allocation restrictive de la mémoire système tel qu'il a été défini par la commande rcapadm
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% |