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

Chapitre 4 Comptabilisation étendue (présentation)

En tirant parti des utilitaires de projet et de tâche décrits au Chapitre 2Projets et tâches (présentation) pour étiqueter et séparer les charges de travail, vous avez la possibilité de contrôler la façon dont les ressources sont exploitées par chaque charge de travail. Le sous-système de comptabilisation étendue vous aide à recueillir un ensemble détaillé de statistiques sur l'utilisation des ressources tant pour les processus que pour les tâches.

Ce chapitre comprend les sections suivantes :

Pour commencer à utiliser la fonction de comptabilisation étendue, passez à la section Activation de la comptabilisation étendue pour les processus, les tâches et les flux.

Nouveautés dans la comptabilisation étendue pour Solaris 10

Il est possible désormais de générer des données mstate de comptabilisation des processus. Voir Affichage des ressources de comptabilisation disponibles.

Vous trouverez une liste complète des nouvelles fonctionnalités de Solaris 10 et la description des différentes versions de Solaris dans le guide Nouveautés apportées à Oracle Solaris 10 9/10.

Introduction à la comptabilisation étendue

Le sous-système de comptabilisation étendue permet d'identifier les enregistrements de chaque utilisation du projet correspondant à un travail précis. Vous pouvez également vous servir de la comptabilisation étendue, en parallèle avec le module de comptabilisation de flux IPQoS (Internet Protocol Quality of Service) décrit au Chapitre 36, Utilisation de la comptabilisation des flux et de la collecte statistique (tâches) du Guide d’administration système : services IP, pour obtenir des informations sur les flux de réseau d'un système.

Avant de mettre en œuvre les mécanismes de gestion des ressources, vous devez d'abord analyser les demandes d'utilisation de ressources émanant des différentes charges de travail d'un système. L'utilitaire de comptabilisation étendue du système d'exploitation Solaris fait un suivi de l'utilisation des ressources du réseau et du système en fonction des tâches ou des processus ou sur la base des sélecteurs fournis par le module IPQoS flowacct. Pour plus d'informations, voir ipqos(7IPP).

À la différence des outils de contrôle en ligne qui permettent de mesurer l'utilisation du système en temps réel, la comptabilisation étendue produit un historique de toutes les opérations effectuées. Vous pouvez alors évaluer plus facilement les besoins en terme de capacité des futures charges de travail.

Grâce aux données de comptabilisation étendue disponibles, vous pouvez développer ou acheter des logiciels prévus spécialement pour imputer les ressources, gérer la charge de travail ou planifier la capacité.

Mode de fonctionnement de la comptabilisation étendue

L'utilitaire de comptabilisation étendue du système d'exploitation Solaris stocke les données de comptabilisation sous un format de fichier extensible à version multiple. Pour accéder aux fichiers disponibles sous ce format ou créer ce type de fichier, servez-vous de l'API proposée dans la bibliothèque fournie, libexacct (voir libexacct(3LIB)). Il suffit ensuite d'analyser ces fichiers à partir de la plate-forme sur laquelle la comptabilisation étendue a été activée et d'exploiter leurs données à des fins de planification de capacité et d'imputation des ressources.

Lorsque la fonction de comptabilisation étendue est active, les statistiques compilées sont consultables au moyen de l'API libexacct. libexacct permet d'examiner les fichiers exacct en amont ou en aval. L'API prend en charge les fichiers tiers générés par libexacct ainsi que les fichiers créés par le noyau. Il existe une interface Perl (Practical Extraction and Report Language) prévue spécialement pour l'API libexacct qui permet de développer des scripts de génération de rapports et d'extraction personnalisés. Reportez-vous à la section Interface Perl pour libexacct.

Par exemple, lorsque la fonction de comptabilisation étendue est active, la tâche fait le cumul des ressources utilisées par ses processus membres. L'enregistrement correspondant est écrit au moment de l'exécution de la tâche. Le programme peut également créer des enregistrements intermédiaires relatifs aux processus et aux tâches en cours. Pour plus d'informations sur les tâches, reportez-vous au Chapitre 2Projets et tâches (présentation).

Figure 4–1 Suivi de tâche en mode de comptabilisation étendue

L'organigramme indique la façon dont le cumul des ressources utilisées par les processus d'une tâche est inscrit dans l'enregistrement créé au moment de l'exécution de la tâche.

Format extensible

Le format de comptabilisation étendue est considérablement plus extensible que le format du logiciel de comptabilisation de l'ancien système SunOS (voir What is System Accounting? du System Administration Guide: Advanced Administration). La comptabilisation étendue permet d'ajouter et de supprimer des mesures comptables du système entre chaque version, voire même pendant le fonctionnement du système.


Remarque –

La fonction de comptabilisation étendue et le logiciel de comptabilisation de l'ancien système peuvent être actifs en même temps sur votre système.


Enregistrements et formats exacct

Les routines permettant de créer des enregistrements exacct ont un double intérêt :

Le format permet de prendre en compte différentes formes d'enregistrements de comptabilisation sans demander un changement de version explicite après chaque modification. Les applications bien conçues exploitant les données de comptabilisation doivent ignorer les enregistrements non reconnus.

La bibliothèque libexacct convertit et génère des fichiers au format exacct. Il s'agit de la seule interface compatible pour les fichiers au format exacct.


Remarque –

Les appels système getacct, putacct et wracct ne s'appliquent pas aux flux. Le noyau crée des enregistrements de flux et les écrit dans le fichier lors de la configuration de comptabilisation de flux IPQoS.


Utilisation de la comptabilisation étendue sur un système Solaris disposant de zones

Le sous-système de comptabilisation étendue effectue la collecte de données et produit des rapports pour le système entier (y compris les zones non globales) en cas d'exécution dans la zone globale. L'administrateur global peut également déterminer le mode d'utilisation des ressources par zone. Pour plus d'informations, reportez-vous à la section Comptabilisation étendue sur un système Solaris doté de zones.

Configuration de la comptabilisation étendue

Le fichier /etc/acctadm.conf contient la configuration actuelle de la comptabilisation étendue. Ce fichier est modifié non pas par l'utilisateur, mais par l'interface acctadm .

Le répertoire /var/adm/exacct est l'emplacement standard réservé aux données de comptabilisation étendue. Vous pouvez faire appel à la commande acctadm pour changer l'emplacement où sont stockés les fichiers des données de comptabilisation des processus et des tâches. Pour plus d'informations, voir acctadm(1M).

Commandes s'appliquant à la comptabilisation étendue

Aide-mémoire des commandes 

Description 

acctadm(1M)

Modifie divers attributs de l'utilitaire de comptabilisation étendue, arrête et démarre la comptabilisation étendue et sert à sélectionner les attributs de comptabilisation permettant d'assurer le suivi des processus, des tâches et des flux. 

wracct(1M)

Écrit les enregistrements de comptabilisation étendue correspondant aux processus actifs et aux tâches actives. 

lastcomm(1)

Affiche les commandes précédemment appelées. lastcomm peut utiliser des données de comptabilisation standard ou des données de comptabilisation étendue pour les processus.

Pour plus d'informations sur les commandes associées aux tâches et aux projets, reportez-vous à la section Exemples de commandes et d'options de commande. Pour plus d'informations sur la comptabilisation des flux IPQoS, voir ipqosconf(1M).

Interface Perl pour libexacct

L'interface Perl permet de créer des scripts Perl capables de lire les fichiers de comptabilisation générés par la structure exacct. Vous pouvez également créer des scripts Perl qui écrivent des fichiers exacct.

Cette interface présente une fonctionnalité équivalente à l'API sous-jacente C. Lorsque cela est possible, les données obtenues à partir de cette API sont présentées en tant que types de données Perl. Cela facilite l'accès aux données et évite les opérations de compression et de décompression du tampon. De plus, toutes les opérations liées à la gestion de la mémoire sont réalisées par la bibliothèque Perl.

Les différentes fonctions de projet et de tâche, et les fonctions ayant trait à la structure exacct sont réparties par groupe. Chaque groupe de fonctions est placé dans un module Perl spécifique. Chaque module commence par le préfixe Sun standard de package Perl Sun::Solaris::. Toutes les classes fournies par la bibliothèque Perl exacct se trouvent dans le module Sun::Solaris::Exacct.

La bibliothèque libexacct(3LIB) sous-jacente assure des opérations s'appliquant aux fichiers de format exacct, aux balises de catalogue et aux objets exacct. Les objets exacct sont classés en deux types :

Le tableau suivant présente chacun des modules.

Module (sans aucun espace) 

Description 

Pour plus d'informations 

Sun::Solaris::Project

Ce module fournit les fonctions permettant d'accéder aux fonctions de manipulation du projet getprojid(2), endprojent(3PROJECT) , fgetprojent(3PROJECT), getdefaultproj(3PROJECT), getprojbyid(3PROJECT), getprojbyname(3PROJECT), getprojent(3PROJECT), getprojidbyname(3PROJECT), inproj(3PROJECT), project_walk(3PROJECT), setproject(3PROJECT) et setprojent(3PROJECT).

Project(3PERL)

Sun::Solaris::Task

Ce module fournit les fonctions permettant d'accéder aux fonctions de manipulation de tâche gettaskid(2) et settaskid(2).

Task(3PERL)

Sun::Solaris::Exacct

Il s'agit du module exacct de niveau supérieur. Il fournit les fonctions permettant d'accéder aux appels système liés à exacct-related system calls getacct(2), putacct(2) et wracct(2). Il propose également des fonctions d'accès à la fonction de bibliothèque libexacct(3LIB) ea_error(3EXACCT). Les constantes s'appliquant à toutes les macros exacct EO_*, EW_*, EXR_*, P_* et TASK_* sont également disponibles dans ce module.

Exacct(3PERL)

Sun::Solaris::Exacct:: Catalog

Ce module fournit des méthodes orientées objet pour accéder aux champs de bits d'une balise de catalogue exacct. Il donne également accès aux constantes destinées aux macros EXC_*, EXD_* et EXD_*.

Exacct::Catalog(3PERL)

Sun::Solaris::Exacct:: File

Ce module fournit des méthodes orientées objet pour accéder aux fonctions de fichier de comptabilisation libexacct ea_open(3EXACCT), ea_close(3EXACCT), ea_get_creator(3EXACCT), ea_get_hostname(3EXACCT), ea_next_object(3EXACCT), ea_previous_object(3EXACCT) et ea_write_object(3EXACCT).

Exacct::File(3PERL)

Sun::Solaris::Exacct:: Object

Ce module fournit des méthodes orientées objet pour accéder à un objet de fichier de comptabilisation exacct. Un objet exacct est représenté sous forme d'une référence opaque incorporée à la sous-classe Sun::Solaris::Exacct::Object appropriée. Ce module est subdivisé à son tour en types d'objet Élément et Groupe. À ce niveau, il existe des méthodes pour accéder aux fonctions ea_match_object_catalog(3EXACCT) et ea_attach_to_object(3EXACCT).

Exacct::Object(3PERL)

Sun::Solaris::Exacct:: Object::Item

Ce module fournit des méthodes orientées objet pour accéder à un élément de fichier de comptabilisation exacct. Les objets de ce type héritent de Sun::Solaris::Exacct::Object.

Exacct::Object::Item(3PERL)

Sun::Solaris::Exacct:: Object::Group

Ce module fournit des méthodes orientées objet pour accéder à un groupe de fichiers de comptabilisation exacct. Les objets de ce type héritent de Sun::Solaris::Exacct::Object. Ces objets donnent accès à la fonction ea_attach_to_group(3EXACCT). Les éléments contenus dans le groupe sont présentés sous forme de tableau Perl.

Exacct::Object::Group(3PERL)

Sun::Solaris::Kstat

Ce module fournit une interface de hachage Perl à l'utilitaire kstat. Vous trouverez un exemple d'utilisation de ce module dans /bin/kstat, écrit en langage Perl.

Kstat(3PERL)

Pour obtenir des exemples d'utilisation des modules décrits dans le tableau précédent, reportez-vous à la section Utilisation de l'interface Perl pour accéder à libexacct.