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

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