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

Chapitre 13 Création et administration des pools de ressources (tâches)

Ce chapitre décrit comment configurer et gérer des pools de ressources sur votre système.

Pour plus d'informations sur les pools de ressources, reportez-vous au Chapitre 12Pools de ressources (présentation).

Administration des pools de ressources dynamiques (liste des tâches)

Tâche 

Description 

Voir 

Activer ou désactiver les pools de ressources 

Activez ou désactivez les pools de ressources sur votre système. 

Activation et désactivation de l'utilitaire Pools

Activer ou désactiver les pools de ressources dynamiques 

Activez ou désactivez les pools de ressources dynamiques sur votre système. 

Activation et désactivation de l'utilitaire Pools

Créer une configuration de pools de ressources statique 

Créez un fichier de configuration statique correspondant à la configuration dynamique actuelle. Pour plus d'informations, reportez-vous à la section Structure des pools de ressources.

Création d'une configuration statique

Modifier une configuration de pools de ressources 

Redéfinissez une configuration de pools sur votre système en créant, par exemple, des pools supplémentaires. 

Modification d'une configuration

Associer un pool de ressources à une classe de programmation 

Associez un pool à une classe de programmation pour permettre à tous les processus liés de tirer parti de l'ordonnanceur indiqué. 

Association d'un pool avec une classe de programmation

Définir des contraintes de configuration et des objectifs de configuration 

Fixez des objectifs pour la commande poold lors d'une action corrective. Pour plus d'informations sur la configuration des objectifs, reportez-vous à la section Présentation de poold.

Définition des contraintes de configuration et Établissement des objectifs de configuration

Définir le niveau de consignation 

Spécifiez le niveau des informations consignées dans le journal généré par poold.

Définition du niveau de consignation poold

Utiliser un fichier texte avec la commande poolcfg

Exécutez la commande poolcfg de façon à tirer parti des entrées provenant d'un fichier texte.

Utilisation des fichiers de commandes avec poolcfg

Transférer des ressources dans le noyau. 

Transférer des ressources dans le noyau. telles que des ressources avec des ID spécifiques vers un jeu de destination. 

Transfert des ressources

Activer une configuration de pools 

Activez la configuration dans le fichier de configuration par défaut. 

Activation d'une configuration de pools

Tester une configuration de pools avant de valider la configuration 

Simulez ce qui se produira après la validation de la configuration. 

Test d'une configuration avant sa validation

Supprimer une configuration de pools de votre système 

Toutes les ressources associées, telles que les jeux de processeurs, reprennent leur état par défaut. 

Suppression d'une configuration de pools

Lier des processus à un pool 

Associez manuellement un processus en cours d'exécution sur votre système à un pool de ressources. 

Liaison des processus à un pool

Lier des tâches ou des projets à un pool 

Associez des tâches ou des projets à un pool de ressources. 

Liaison de tâches ou de projets à un pool

Lier de nouveaux processus à un pool de ressources 

Pour lier automatiquement de nouveaux processus dans un projet à un pool donné, ajoutez un attribut à chaque entrée de la base de données project.

Définition de l'attribut project.pool pour un projet

Utiliser des attributs project pour lier un processus à un autre pool

Modifiez la liaison de pool pour les nouveaux processus démarrés. 

Liaison d'un processus à un autre pool grâce aux attributs project

Exécuter l'utilitaire poolstat pour produire des rapports

Créez plusieurs rapports à intervalles spécifiques. 

Création de plusieurs rapports à intervalles spécifiques

Créer un état statistique sur un ensemble de ressources 

Servez-vous de l'utilitaire poolstat pour obtenir des statistiques sur un ensemble de ressources d'un jeu de processeurs.

Création d'un état statistique sur l'ensemble de ressources

Activation et désactivation de l'utilitaire Pools

À partir de la version Solaris 10 11/06, il est possible d'activer et de désactiver les services de pools de ressources et de pools de ressources dynamiques sur votre système à l'aide de la commande svcadm décrite dans la page de manuel svcadm(1M).

Vous pouvez également faire appel à la commande pooladm décrite dans la page de manuel pooladm(1M) pour réaliser les tâches suivantes :


Remarque –

Lors de la mise à niveau d'un système, si la structure de pools de ressources est activée et que le fichier /etc/pooladm.conf existe, le service de pools est automatiquement activé et la configuration définie dans le fichier est appliquée au système.


ProcedureSolaris 10 11/06 et ultérieur : activation du service de pools de ressources à l'aide de svcadm

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Activez le service de pools de ressources.


    # svcadm enable system/pools:default
    

ProcedureSolaris 10 11/06 et ultérieur : désactivation du service de pools de ressources à l'aide de svcadm

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Désactivez le service de pools de ressources.


    # svcadm disable system/pools:default
    

ProcedureSolaris 10 11/06 et ultérieur : activation du service de pools de ressources dynamiques à l'aide de svcadm

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

    Les rôles contiennent des autorisations et des commandes privilégiées. Pour plus d'informations sur la création du rôle et son attribution à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services et Managing RBAC (Task Map) du guide System Administration Guide: Security Services (en anglais).

  2. Activez le service de pools de ressources dynamiques.


    # svcadm enable system/pools/dynamic:default
    

Exemple 13–1 Dépendance du service de pools de ressources dynamiques sur le service de pools de ressources

Cet exemple montre qu'il faut d'abord activer les pools de ressources pour exécuter DRP.

Il existe une dépendance entre les pools de ressources et les pools de ressources dynamiques. DRP est désormais un service dépendant des pools de ressources. Il peut être activé et désactivé indépendamment des pools de ressources.

L'affichage suivant montre que les pools de ressources et les pools de ressources dynamiques sont actuellement désactivés :


# svcs *pool*
STATE          STIME    FMRI
disabled       10:32:26 svc:/system/pools/dynamic:default
disabled       10:32:26 svc:/system/pools:default

Activez les pools de ressources dynamiques :


# svcadm enable svc:/system/pools/dynamic:default
# svcs -a | grep pool
disabled       10:39:00 svc:/system/pools:default
offline        10:39:12 svc:/system/pools/dynamic:default

Notez que le service DRP est encore hors ligne.

Servez-vous de l'option -x de la commande svcs pour déterminer la raison pour laquelle le service DRP est hors ligne :


# svcs -x *pool*
svc:/system/pools:default (resource pools framework)
 State: disabled since Wed 25 Jan 2006 10:39:00 AM GMT
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: libpool(3LIB)
   See: pooladm(1M)
   See: poolbind(1M)
   See: poolcfg(1M)
   See: poolstat(1M)
   See: /var/svc/log/system-pools:default.log
Impact: 1 dependent service is not running.  (Use -v for list.)

svc:/system/pools/dynamic:default (dynamic resource pools)
 State: offline since Wed 25 Jan 2006 10:39:12 AM GMT
Reason: Service svc:/system/pools:default is disabled.
   See: http://sun.com/msg/SMF-8000-GE
   See: poold(1M)
   See: /var/svc/log/system-pools-dynamic:default.log
Impact: This service is not running.

Activez le service de pools de ressources de façon à pouvoir exécuter le service DRP :


# svcadm enable svc:/system/pools:default

Après l'exécution de la commande svcs *pool*, le système affiche l'écran suivant :


# svcs *pool*
STATE          STIME    FMRI
online         10:40:27 svc:/system/pools:default
online         10:40:27 svc:/system/pools/dynamic:default


Exemple 13–2 Effet des pools de ressources dynamiques lorsque le service de pools de ressources est désactivé

Si les deux services sont en ligne et que vous désactivez les pools de ressources :


# svcadm disable svc:/system/pools:default 

Après l'exécution de la commande svcs *pool*, le système affiche l'écran suivant :


# svcs *pool*
STATE          STIME    FMRI
disabled       10:41:05 svc:/system/pools:default
online         10:40:27 svc:/system/pools/dynamic:default
# svcs *pool*
STATE          STIME    FMRI
disabled       10:41:05 svc:/system/pools:default
online         10:40:27 svc:/system/pools/dynamic:default

Le service DRP se met hors ligne en raison de la désactivation du service de pools de ressources :


# svcs *pool*
STATE          STIME    FMRI
disabled       10:41:05 svc:/system/pools:default
offline        10:41:12 svc:/system/pools/dynamic:default

Déterminez la raison pour laquelle le service DRP est hors ligne :


# svcs -x *pool*
svc:/system/pools:default (resource pools framework)
 State: disabled since Wed 25 Jan 2006 10:41:05 AM GMT
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: libpool(3LIB)
   See: pooladm(1M)
   See: poolbind(1M)
   See: poolcfg(1M)
   See: poolstat(1M)
   See: /var/svc/log/system-pools:default.log
Impact: 1 dependent service is not running.  (Use -v for list.)

svc:/system/pools/dynamic:default (dynamic resource pools)
 State: offline since Wed 25 Jan 2006 10:41:12 AM GMT
Reason: Service svc:/system/pools:default is disabled.
   See: http://sun.com/msg/SMF-8000-GE
   See: poold(1M)
   See: /var/svc/log/system-pools-dynamic:default.log
Impact: This service is not running.

Il est indispensable de démarrer les pools de ressources pour tirer parti du service DRP. Vous pourriez, par exemple, lancer les pools de ressources à l'aide de la commande pooladm et de l'option -e :


# pooladm -e

La commande svcs *pool* affiche ensuite l'écran suivant :


# svcs *pool*
STATE          STIME    FMRI
online         10:42:23 svc:/system/pools:default
online         10:42:24 svc:/system/pools/dynamic:default

ProcedureSolaris 10 11/06 et ultérieur : désactivation du service de pools de ressources dynamiques à l'aide de svcadm

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Désactivez le service de pools de ressources dynamiques.


    # svcadm disable system/pools/dynamic:default
    

ProcedureActivation des pools de ressources à l'aide de pooladm

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Activez l'utilitaire Pools.


    # pooladm -e
    

ProcedureDésactivation des pools de ressources à l'aide de pooladm

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Désactivez l'utilitaire Pools.


    # pooladm -d
    

Configuration des pools

ProcedureCréation d'une configuration statique

Appliquez l'option -s à /usr/sbin/pooladm pour créer un fichier de configuration statique correspondant à la configuration dynamique actuelle. Sauf en cas de spécification d'un nom de fichier différent, il convient d'utiliser l'emplacement par défaut /etc/pooladm.conf .

Validez votre configuration à l'aide de la commande pooladm et de l'option -c. Exécutez ensuite la commande pooladm avec l'option -s pour mettre à jour la configuration statique en fonction de l'état de la configuration dynamique.


Remarque –

Il est préférable d'utiliser la nouvelle fonctionnalité pooladm -s au lieu de la fonctionnalité précédente poolcfg -c discover pour créer une configuration correspondant à la configuration dynamique.


Avant de commencer

Activez les pools 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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Mettez à jour le fichier de configuration statique pour qu'il corresponde à la configuration dynamique actuelle.


    # pooladm -s
    
  3. Affichez le contenu du fichier de configuration sous une forme lisible.

    Notez que la configuration contient des éléments par défaut créés par le système.


    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
  4. Validez la configuration dans /etc/pooladm.conf .


    # pooladm -c
    
  5. (Facultatif) Pour copier la configuration dynamique dans le fichier de configuration statique appelé /tmp/backup, entrez l'instruction suivante :


    # pooladm -s /tmp/backup
    

ProcedureModification d'une configuration

Pour optimiser votre configuration, créez un jeu de processeurs appelé pset_batch et un pool appelé pool_batch. Établissez ensuite une association entre le pool et le jeu de processeurs.

N'oubliez pas d'insérer les arguments de sous-commande contenant un espace vide.

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Créez le jeu de processeurs pset_batch.


    # poolcfg -c 'create pset pset_batch (uint pset.min = 2; uint pset.max = 10)'
    
  3. Créez le pool pool_batch.


    # poolcfg -c 'create pool pool_batch'
    
  4. Établissez une association entre le pool et le jeu de processeurs.


    # poolcfg -c 'associate pool pool_batch (pset pset_batch)'
    
  5. Affichez la configuration modifiée.


    # poolcfg -c info
    system tester
            string  system.comment kernel state
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    pset pset_batch
    
            pset pset_batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  6. Validez la configuration dans /etc/pooladm.conf .


    # pooladm -c
    
  7. (Facultatif) Pour copier la configuration dynamique dans un fichier de configuration statique appelé /tmp/backup, entrez l'instruction suivante :


    # pooladm -s /tmp/backup
    

ProcedureAssociation d'un pool avec une classe de programmation

Vous pouvez associer un pool à une classe de programmation pour permettre à tous les processus liés de tirer parti de l'ordonnanceur. Pour ce faire, donnez à la propriété pool.scheduler le nom de l'ordonnanceur. Cet exemple permet d'associer le pool pool_batch à l'ordonnanceur FSS.

  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 plus d'informations sur la création du rôle et sur son assignation à un utilisateur, reportez-vous à la section relative à la gestion RBAC (liste de tâches) du System Administration Guide: Security Services.

  2. Modifiez le pool pool_batch à associer à l'ordonnanceur FSS.


    # poolcfg -c 'modify pool pool_batch (string pool.scheduler="FSS")'
    
  3. Affichez la configuration modifiée.


    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    string pool.scheduler FSS
                    pset batch
    
            pset pset_batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  4. Validez la configuration dans /etc/pooladm.conf :


    # pooladm -c
    
  5. (Facultatif) Pour copier la configuration dynamique dans le fichier de configuration statique appelé /tmp/backup, entrez l'instruction suivante :


    # pooladm -s /tmp/backup
    

ProcedureDéfinition des contraintes de configuration

Les contraintes limitent l'étendue des configurations possibles en empêchant certaines modifications potentielles. Cette procédure montre comment définir la propriété cpu.pinned.

Dans les exemples qui suivent, cpuid représente un nombre entier.

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Modifiez la propriété cpu.pinned dans la configuration statique ou dynamique :

    • Changez la configuration de démarrage (statique) :


      # poolcfg -c 'modify cpu <cpuid> (boolean cpu.pinned = true)'
      
    • Changez la configuration en cours d'exécution (dynamique) sans modifier la configuration de démarrage :


      # poolcfg -dc 'modify cpu <cpuid> (boolean cpu.pinned = true)'
      

ProcedureÉtablissement des objectifs de configuration

Vous pouvez vous fixer des objectifs pour la commande poold lors d'une action corrective.

Dans la procédure suivante, l'objectif wt-load est de faire en sorte que poold essaie de mettre en adéquation l'allocation des ressources et leur utilisation. L'objectif locality est désactivé pour faciliter la réalisation de cet objectif de configuration.

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Modifiez le testeur système (tester) pour favoriser l'objectif wt-load.


    # poolcfg -c 'modify system tester (string system.poold.objectives="wt-load")'
    
  3. Désactivez l'objectif locality pour le jeu de processeurs par défaut.


    # poolcfg -c 'modify pset pset_default (string pset.poold.objectives="locality none")'
    
  4. Désactivez l'objectif locality pour le jeu de processeurs pset_batch.


    # poolcfg -c 'modify pset pset_batch (string pset.poold.objectives="locality none")'
    
  5. Affichez la configuration modifiée.


    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
            string  system.poold.objectives wt-load
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
                    string  pset.poold.objectives locality none
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    string pool.scheduler FSS
                    pset batch
    
            pset pset_batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0
                    string  pset.poold.objectives locality none
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  6. Validez la configuration dans /etc/pooladm.conf .


    # pooladm -c
    
  7. (Facultatif) Pour copier la configuration dynamique dans le fichier de configuration statique appelé /tmp/backup, entrez l'instruction suivante :


    # pooladm -s /tmp/backup
    

ProcedureDéfinition du niveau de consignation poold

Pour spécifier le niveau des informations consignées dans le journal généré par poold, définissez la propriété system.poold.log-level dans la configuration poold. La configuration poold est conservée au sein de la configuration libpool. Pour plus d'informations, reportez-vous à la section Informations de consignation poold et aux pages de manuel poolcfg(1M) et libpool(3LIB).

Vous pouvez également tirer parti de la commande poold sur la ligne de commande pour indiquer le niveau de consignation voulu dans le journal créé par poold.

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Définissez le niveau de consignation en exécutant la commande poold avec l'option -l et un paramètre (INFO, par exemple).


    # /usr/lib/pool/poold -l INFO
    

    Pour plus d'informations sur les paramètres disponibles, reportez-vous à la section Informations de consignation poold. Le niveau de consignation par défaut est NOTICE.

ProcedureUtilisation des fichiers de commandes avec poolcfg

La commande poolcfg associée à l'option -f accepte une entrée provenant d'un fichier texte dans lequel figurent les arguments de sous-commande poolcfg correspondant à l'option -c. Cette méthode est pratique pour effectuer une série d'opérations. Lors du traitement des commandes, la configuration n'est mise à jour que si toutes les commandes aboutissent. Dans le cas de configurations plus importantes ou plus complexes, il est préférable d'utiliser cette technique que de procéder par sous-commande.

Dans les fichiers de commandes, le caractère # signale un commentaire dans le reste de la ligne.

  1. Créez le fichier d'entrée poolcmds.txt .


    $ cat > poolcmds.txt
    create system tester
    create pset pset_batch (uint pset.min = 2; uint pset.max = 10)
    create pool pool_batch
    associate pool pool_batch (pset pset_batch)
    
  2. 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 du System Administration Guide: Security Services.

  3. Exécutez la commande :


    # /usr/sbin/poolcfg -f poolcmds.txt
    

Transfert des ressources

Associez l'argument de sous-commande transfer à l'option -c (lorsque vous exécutez la commande poolcfg avec l'option -d) pour transférer les ressources dans le noyau. L'option -d permet à la commande de fonctionner directement au niveau du noyau et évite de prendre en compte les entrées provenant d'un fichier.

La procédure suivante déplace deux CPU du jeu de processeurs pset1 vers le jeu de processeurs pset2 dans le noyau.

ProcedureTransfert de CPU entre les jeux de processeurs

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Transférez deux CPU de pset1 à pset2.

    L'ordre d'utilisation des sous-clauses from et to n'a pas d'importance. Une seule sous-clause to et from est acceptée par commande.


    # poolcfg -dc 'transfer 2 from pset pset1 to pset2'
    

Exemple 13–3 Autre méthode pour déplacer des CPU entre jeux de processeurs

S'il est nécessaire de transférer des ID connus d'un type de ressource, une autre syntaxe a été prévue. La commande suivante permet, par exemple, d'allouer deux CPU identifiées par les ID 0 et 2 au jeu de processeurs pset_large :


# poolcfg -dc "transfer to pset pset_large (cpu 0; cpu 2)"

Dépannage

Si les ressources sont insuffisantes pour satisfaire la requête ou si les ID spécifiés ne peuvent pas être localisés, le transfert échoue et le système affiche un message d'erreur.

Activation et suppression des configurations de pools

Utilisez la commande pooladm pour rendre une configuration de pools active ou pour supprimer la configuration active. Pour plus d'informations au sujet de cette commande, voir la page de manuel pooladm(1M).

ProcedureActivation d'une configuration de pools

Pour activer la configuration dans le fichier de configuration par défaut, /etc/pooladm.conf, exécutez la commande pooladm avec l'option de validation de la configuration (-c).

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Validez la configuration dans /etc/pooladm.conf .


    # pooladm -c
    
  3. (Facultatif) Copiez la configuration dynamique dans un fichier de configuration statique, /tmp/backup par exemple.


    # pooladm -s /tmp/backup
    

ProcedureTest d'une configuration avant sa validation

En combinant l'option -n et l'option -c, vous avez la possibilité de simuler le résultat que vous obtiendrez après validation. Cela n'a pas pour effet de valider la configuration.

La commande suivante essaie de tester la configuration figurant dans /home/admin/newconfig. Les conditions d'erreur rencontrées sont affichées, mais la configuration n'est pas modifiée.

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Testez la configuration avant de la valider.


    # pooladm -n -c /home/admin/newconfig
    

ProcedureSuppression d'une configuration de pools

Pour supprimer la configuration active et rétablir l'état par défaut de toutes les ressources associées (comme les jeux de processeurs), utilisez l'option de suppression de la configuration (-x).

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Supprimez la configuration active.


    # pooladm -x
    

    L'option - x associée à la commande pooladm a pour effet d'effacer tous les éléments définis par l'utilisateur de la configuration dynamique. Les ressources reprennent toutes leur état par défaut et l'ensemble des liaisons de pools sont remplacées par une liaison vers le pool par défaut.

Mélange des classes de programmation au sein d'un jeu de processeurs

Vous pouvez combiner, en toute sécurité, des processus des classes TS et IA au sein du même jeu de processeurs. Le mélange d'autres classes de programmation au sein d'un même jeu de processeurs peut produire des résultats imprévisibles. Si l'instruction pooladm -x a pour effet de combiner des classes de processeurs au sein d'un même jeu de processeurs, utilisez la commande priocntl pour transférer les processus en cours vers une autre classe de programmation. Pour ce faire, reportez-vous à la section Transfert manuel de processus de la classe TS vers la classe FSS. Voir aussi la page de manuel priocntl(1).

Définition des attributs des pools et liaison à un pool

Vous pouvez définir un attribut project.pool afin d'associer un pool de ressources à un projet.

Vous disposez de deux modes de liaison d'un processus en cours à un pool :

ProcedureLiaison des processus à un pool

La procédure suivante utilise la commande poolbind avec l'option -p pour établir une liaison manuelle entre un processus (le shell actuel, dans le cas présent) et un pool appelé ohare.

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Liez un processus à un pool de façon manuelle :


    # poolbind -p ohare $$
    
  3. Vérifiez la liaison du pool pour le processus en exécutant la commande poolbind avec l'option -q.


    $ poolbind -q $$
    155509 ohare

    Le système affiche l'ID du processus et la liaison du pool.

ProcedureLiaison de tâches ou de projets à un pool

Pour lier des tâches ou des projets à un pool, exécutez la commande poolbind avec l'option -i. L'exemple suivant permet de lier tous les processus du projet airmiles au pool laguardia.

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Liez tous les processus du projet airmiles au pool laguardia.


    # poolbind -i project -p laguardia airmiles
    

ProcedureDéfinition de l'attribut project.pool pour un projet

Vous pouvez définir l'attribut project.pool afin de lier les processus d'un projet à un pool de ressources.

  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 plus d'informations au sujet des rôles, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Ajoutez un attribut project.pool à chaque entrée de la base de données project.


    # projmod -a -K project.pool=poolname project
    

ProcedureLiaison d'un processus à un autre pool grâce aux attributs project

Supposons que vous disposez d'une configuration constituée de deux pools appelés studio et backstage. Le fichier /etc/project contient les données suivantes :


user.paul:1024::::project.pool=studio
user.george:1024::::project.pool=studio
user.ringo:1024::::project.pool=backstage
passes:1027::paul::project.pool=backstage

Sous cette configuration, les processus lancés par l'utilisateur paul sont liés par défaut au pool studio.

L'utilisateur paul a la possibilité de modifier la liaison du pool pour les processus qu'il se charge de démarrer. paul peut faire appel à la commande newtask pour lier également le travail au pool backstage, en lançant le projet passes.

  1. Démarrez un processus dans le projet passes.


    $ newtask -l -p passes
    
  2. Exécutez la commande poolbind avec l'option -q pour vérifier la liaison du pool pour le processus. Servez-vous également du symbole double dollar ($$) pour transmettre le numéro de processus du shell parent à la commande.


    $ poolbind -q $$
    6384  pool backstage

    Le système affiche l'ID du processus et la liaison du pool.

Création d'un état statistique pour les ressources liées au pool à l'aide de poolstat

La commande poolstat permet d'obtenir des statistiques sur les ressources ayant trait au pool. Pour plus d'informations, reportez-vous à la section Utilisation de poolstat pour contrôler l'utilitaire des pools et l'utilisation des ressources et à la page de manuel poolstat(1M).

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

Affichage de la sortie poolstat par défaut

Le fait d'exécuter la commande poolstat sans argument génère une ligne d'en-tête et une ligne d'informations pour chaque pool. La ligne d'informations contient l'ID du pool, le nom du pool et les statistiques sur les ressources pour le jeu de processeurs associé au pool.


machine% poolstat
                              pset
       id pool           size used load
        0 pool_default      4  3.6  6.2
        1 pool_sales        4  3.3  8.4

Création de plusieurs rapports à intervalles spécifiques

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


machine% poolstat 5 3
                               pset
 id pool                 size used load
 46 pool_sales              2  1.2  8.3
  0 pool_default            2  0.4  5.2
                              pset
 id pool                 size used load
 46 pool_sales              2  1.4  8.4
  0 pool_default            2  1.9  2.0
                              pset
 id pool                 size used load
 46 pool_sales              2  1.1  8.0
  0 pool_default            2  0.3  5.0  

Création d'un état statistique sur l'ensemble de ressources

L'exemple suivant a recours à la commande poolstat et à l'option -r pour produire un état statistique sur les ressources du jeu de processeurs. Comme l'ensemble de ressources pset_default est lié à plusieurs pools, le jeu de processeurs n'apparaît qu'une seule fois dans la liste pour chaque appartenance au pool.


machine% poolstat -r pset
      id pool          type rid rset          min  max size used load
       0 pool_default  pset  -1 pset_default    1  65K    2  1.2  8.3
       6 pool_sales    pset   1 pset_sales      1  65K    2  1.2  8.3
       2 pool_other    pset  -1 pset_default    1  10K    2  0.4  5.2