Il existe deux catégories d'actions applicables aux valeurs de contrôle de ressource : globale et locale.
Les actions globales s'appliquent aux valeurs de chaque contrôle de ressource du système. Vous pouvez utiliser la commande rctladm décrite à la page de manuelrctladm(1M) pour réaliser les actions suivantes :
Afficher l'état global des contrôles de ressources système actifs
Définir les actions de consignation globales
Vous avez la possibilité d'activer ou de désactiver l'action de consignation globale pour les contrôles de ressources. Vous pouvez configurer l'action syslog jusqu'à un degré spécifique en assignant un niveau de gravité, syslog=level. Voici les différents paramètres sélectionnables pour level :
debug
info
notice
warning
err
crit
alert
emerg
Par défaut, les violations de contrôle de ressource ne font pas l'objet d'une consignation globale. Le niveau n/a indique les contrôles de ressources sur lesquels aucune action globale ne peut être configurée.
Des actions locales sont accomplies sur un processus essayant de dépasser la valeur de contrôle. Il est possible d'associer une ou plusieurs actions à chaque valeur de seuil appliquée à un contrôle de ressource. Il existe trois types d'action locale : none, deny et signal=. Ces trois actions sont utilisées dans les conditions suivantes :
Les demandes de ressources d'une quantité supérieure au seuil fixé ne sont suivies d'aucune action. Cela est pratique pour surveiller l'utilisation des ressources sans perturber le déroulement des applications en cours. Vous pouvez également prévoir l'affichage d'un message global en cas de dépassement du contrôle de ressource, même si cela n'a aucune incidence sur le processus concerné.
Les demandes de ressources d'une quantité supérieure au seuil fixé sont refusées. Ainsi, un contrôle de ressource task.max-lwps pour lequel vous avez choisi l'action deny provoque l'échec de l'appel système fork si le nouveau processus dépasse la valeur de contrôle. Reportez-vous à la page de manuel fork(2).
Vous pouvez demander l'émission d'un signal en cas de dépassement du contrôle de ressource. Le signal est alors transmis au processus. Aucun autre signal n'est envoyé si le processus utilise des ressources supplémentaires. Les signaux disponibles sont répertoriés dans le Table 6–3.
Ces actions ne sont pas toutes applicables à chaque contrôle de ressource. Un processus n'est pas en mesure, par exemple, de dépasser le nombre de parts de CPU allouées au projet dont il est membre. L'action deny n'est, par conséquent, pas applicable au contrôle de ressource project.cpu-shares.
En raison des restrictions liées à l'implémentation, les propriétés globales de chaque contrôle peuvent limiter le champ d'actions programmables pour la valeur de seuil. (Reportez-vous à la page de manuel rctladm(1M).) Le tableau suivant récapitule les actions ayant pour effet d'émettre un signal. Pour plus d'informations au sujet des signaux, voir la page de manuel signal(3HEAD).
|