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

Configuration de la commande rcapd

Pour configurer le démon d'allocation restrictive, vous ferez appel à la commande rcapadm. Vous pouvez effectuer les actions suivantes :

Pour configurer le démon, vous devez disposer des privilèges de superutilisateur ou posséder le profil Gestion des processus dans votre liste de profils. Le rôle Gestionnaire de processus et le rôle Administrateur système bénéficient tous les deux du profil Gestion des processus.

Les modifications apportées à la configuration peuvent être incorporées à rcapd en fonction de l'intervalle de configuration défini (voir la section Intervalles des opérations rcapd) ou à la demande en envoyant un signal SIGHUP (voir la page de manuel kill(1)).

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

Les sous-sections suivantes expliquent comment mettre en œuvre la limitation des ressources, comment définir les valeurs de seuil et les intervalles d'analyse de la commande rcapd.

Utilisation du démon d'allocation restrictive sur un système doté de zones

Vous pouvez gérer le mode d'utilisation de la taille résidente définie (RSS) dans une zone en définissant la ressource capped-memory au moment de configurer la zone. Pour plus d'informations, reportez-vous à la section Solaris 10 8/07 : contrôle de la mémoire physique et ressource capped-memory. Il est possible d'exécuter la commande rcapd dans une zone, y compris dans la zone globale, en vue d'imposer des limites de mémoire aux projets de cette zone.

Vous pouvez définir une limite temporaire sur la quantité maximale de mémoire pouvant être utilisée par une zone spécifiée, jusqu'à la prochaine réinitialisation. Reportez-vous à la section Spécification d'une limitation temporaire de ressources pour une zone.

Si vous utilisez la commande rcapd dans une zone dans le but de réguler l'utilisation de la mémoire physique par les processus des projets faisant l'objet de restrictions de ressources, il est indispensable de configurer le démon dans cette zone.

Lorsque vous choisissez des limitations de mémoire pour des applications dans plusieurs zones, le fait qu'elles appartiennent à différentes zones n'a généralement pas d'importance sauf pour les services par zone. Les services par zone ont, en effet, besoin de mémoire. Il faut donc en tenir compte lorsquez vous calculez la quantité de mémoire physique réservée à un système et déterminez les limitations de mémoire.


Remarque –

Vous ne pouvez pas exécuter rcapd dans une zone marquée lx. Il est possible, cependant, d'utiliser le démon de la zone globale pour définir une limitation de mémoire dans la zone marquée.


Seuil d'allocation restrictive de la mémoire

Le seuil d'allocation restrictive de la mémoire correspond au pourcentage d'utilisation de la mémoire physique sur le système qui déclenche la restriction. En cas de dépassement du seuil prévu, les limitations de mémoire sont automatiquement appliquées. Ce pourcentage tient compte de la mémoire physique utilisée par les applications et le noyau. Le pourcentage d'utilisation détermine la façon dont les limitations de mémoire sont mises en œuvre.

Pour appliquer les limitations de mémoire, des pages de mémoire peuvent être retirées des charges de travail du projet.

Une charge de travail est autorisée à utiliser la mémoire physique jusqu'au seuil prévu. Elle peut cependant s'accaparer plus de mémoire tant que l'utilisation des ressources du système ne dépasse pas le seuil d'allocation restrictive de la mémoire.

Pour définir la valeur d'application du seuil, reportez-vous à la section Définition du seuil d'allocation restrictive de la mémoire.

Détermination des valeurs de seuil

Lorsque le seuil prévu pour un projet est trop bas, il est possible que la mémoire ne soit pas suffisante pour réaliser la charge de travail dans des conditions normales. La pagination liée à une surexploitation de la mémoire par la charge de travail a un effet négatif sur les performances du système.

Les projets dont le seuil est trop élevé peuvent disposer de la mémoire physique jusqu'à leur seuil respectif. Dans ce cas, la mémoire physique est effectivement gérée par le noyau et non pas par la commande rcapd.

Lors de la détermination des valeurs de seuil des projets, il est important de prendre en compte les facteurs suivants.

Impact sur le système d'E/S

Il est possible que le démon essaie de réduire la mémoire physique accaparée par la charge de travail d'un projet dès lors que la quantité de mémoire utilisée dépasse le seuil prévu pour le projet. Lors de l'application du seuil maximum d'utilisation de la mémoire physique, les périphériques de swap et les autres périphériques contenant des fichiers mappés par la charge de travail sont mis à contribution. Les performances des périphériques de swap sont donc un facteur essentiel pour déterminer les performances d'une charge de travail qui dépasse régulièrement le seuil fixé. Le traitement de la charge de travail revient à l'exécuter sur une machine possédant une quantité de mémoire physique équivalente au seuil prévu pour la charge de travail.

Impact sur l'utilisation de la CPU

L'utilisation de la CPU par le démon varie en fonction du nombre de processus mis en jeu dans les charges de travail du projet concerné par les limitations de ressources et des tailles des espaces d'adressage des charges de travail.

Une petite fraction du temps CPU du démon est consacrée à l'échantillonnage de chaque charge de travail. Plus le nombre de processus mis en jeu est important, plus la durée d'échantillonnage augmente.

Une autre partie du temps CPU est consacrée à l'application des seuils en cas de dépassement des limites. La durée est proportionnelle à la quantité de mémoire virtuelle impliquée. Le temps CPU utilisé augmente ou diminue pour faire face aux variations de la quantité d'espace d'adressage totale d'une charge de travail. Cette information est reportée dans la colonne vm de la sortie rcapstat. Pour plus d'informations, reportez-vous à la section Contrôle des ressources à l'aide de rcapstat et à la page de manuel rcapstat(1).

Prise en compte de la mémoire partagée

Le démon rcapd signale au RSS les pages de mémoire partagées avec d'autres processus ou mappées à plusieurs reprises au cours d'un même processus, sous forme d'estimation assez précise. Si des processus de projets différents partagent la même mémoire, celle-ci est prise en compte dans le total RSS pour tous les projets partageant la mémoire.

L'estimation peut être utilisée avec les charges de travail telles que celles des bases de données, qui se servent de la mémoire partagée de manière importante. Pour les charges de travail de base de données, il est également possible d'utiliser un échantillon de l'utilisation habituelle d'un projet afin de déterminer une valeur limite initiale appropriée à partir du résultat des options -J ou -Z de la commande prstat. Pour plus d'informations, reportez-vous à la page de manuel prstat(1M).

Intervalles des opérations rcapd

Vous pouvez régler les intervalles de contrôle périodique de la commande rcapd.

Tous les intervalles sont exprimés en secondes. Les opérations effectuées par rcapd et les valeurs d'intervalle par défaut sont décrites dans le tableau suivant.

Opération 

Valeur d'intervalle par défaut en secondes 

Description 

scan

15 

Nombre de secondes entre chaque analyse des processus ayant rejoint ou quitté une charge de travail d'un projet. La valeur minimum est de 1 seconde. 

sample

Nombre de secondes entre chaque échantillonnage de la taille de mémoire résidente et les applications des limites correspondantes. La valeur minimum est de 1 seconde. 

report

5  

Nombre de secondes entre les mises à jour des statistiques de pagination. Si la valeur choisie est 0, les statistiques ne sont pas mises à jour et la sortie obtenue avec rcapstat n'est pas actualisée.

config

60 

Nombre de secondes entre chaque reconfiguration. Dans un événement de reconfiguration, rcapadm vérifie la présence de mises à jour dans le fichier de configuration et analyse la base de données project afin de déterminer si elle contient de nouvelles limitations ou si les limitations ont été révisées. L'envoi d'un signal SIGHUP à la commande rcapd provoque une reconfiguration immédiate.

Pour régler les intervalles, reportez-vous à la section Définition des intervalles de fonctionnement.

Détermination des intervalles d'analyse rcapd

L'intervalle d'analyse définit la fréquence à laquelle rcapd recherche de nouveaux processus. L'analyse prend plus de temps sur les systèmes comptant de nombreux processus en cours d'exécution. Si tel est le cas, il est préférable de rallonger l'intervalle afin de réduire le temps CPU global utilisé. Il ne faut cependant pas oublier que l'intervalle représente également la durée minimale des processus pour qu'ils soient assignés à une charge de travail à ressources limitées. Or, si des charges de travail exécutent de nombreux processus à durée réduite, rcapd risque de ne pas allouer les processus à une charge de travail si l'intervalle d'analyse est trop long.

Détermination des intervalles d'échantillonnage

L'intervalle d'échantillonnage configuré avec rcapadm correspond au délai d'attente le plus court avant que rcapd échantillonne l'utilisation d'une charge de travail et applique la limitation prévue en cas de dépassement. Si vous réduisez cet intervalle, rcapd appliquera de façon plus régulière les limitations prévues, ce qui aura pour effet d'augmenter les E/S liées à la pagination. À l'inverse, un intervalle d'échantillonnage plus court peut limiter l'impact d'une brusque augmentation de la mémoire physique utilisée par une charge de travail sur les autres charges de travail. Le délai entre chaque échantillonnage (c'est-à-dire la durée pendant laquelle la charge de travail peut utiliser de la mémoire sans encombre et même exploiter la mémoire allouée à d'autres charges de travail) est limité.

Si l'intervalle d'échantillonnage prévu pour rcapstat est inférieur à celui appliqué à rcapd avec rcapadm, certains intervalles risquent d'être équivalents à zéro. Cette situation est due au fait que rcapd ne met pas à jour les statistiques au même rythme que rcapadm. L'intervalle spécifié avec rcapadm est indépendant de l'intervalle d'échantillonnage utilisé par rcapstat.