Red Hat Enterprise Linux 3: Introduction à l'administration système | ||
---|---|---|
Précédent | Chapitre 2. Contrôle des ressources | Suivant |
Comme nous l'avons mentionné précédemment, les ressources de tout système se composent de la puissance CPU, de la largeur de bande, de la mémoire et du stockage. Au premier abord, le contrôle ne semble porter que sur ces quatre éléments différents.
Regrettablement, ce n'est pas aussi simple. Prenez par exemple un disque dur. Quel genre d'informations aimeriez-vous connaître au niveau de sa performance ?
Quelle est la quantité d'espace disque libre ?
Combien d'opérations d'E/S par seconde effectue-t-il en moyenne ?
Combien de temps faut-il en moyenne pour que chaque opération d'E/S soit effectuée ?
Combien de ces opérations d'E/S sont des opérations de lecture ? Combien sont des opérations d'écriture ?
Quelle est la quantité moyenne de données lues/écrites lors de chaque opération d'E/S ?
Il existe bien d'autres manières d'examiner la performance du disque dur ; les éléments précédents n'abordent le sujet que très superficiellement. Le concept essentiel qu'il convient de garder à l'esprit est que les données de chaque ressource se présentent sous différents types.
La section suivante examine les différents types d'informations relatives à l'utilisation pouvant être utiles pour comprendre le comportement de chacun des types principaux de ressources.
Au niveau le plus simpliste, il peut être plus difficile de contrôler la puissance CPU que de déterminer la possibilité que l'utilisation du CPU atteigne 100%. Si l'utilisation du CPU reste au-dessous de 100%, quelle que soit l'activité du système, une puissance de traitement supplémentaire est disponible pour faire face à une activité supérieure.
Toutefois, rares sont les systèmes n'atteignant pas, à un moment ou à un autre, une utilisation du CPU à 100%. À ce stade, il est important d'examiner des données plus détaillées sur l'utilisation du CPU. Ce faisant, il est alors possible de commencer à identifier à quel niveau la majorité de votre puissance de traitement est utilisée. Ci-après figurent certaines des statistiques les plus populaires en matière d'utilisation CPU :
Une comparaison du pourcentage de temps passé à effectuer des opérations de traitement au niveau de l'utilisateur par rapport a celui dédié aux opérations de traitement au niveau du système, peut indiquer si une charge de travail est essentiellement due à l'exécution d'applications ou au temps de gestion du système d'exploitation. Des pourcentages plus élevés au niveau des utilisateurs ont tendance à être positifs (à condition que les utilisateurs ne connaissent pas de performance insatisfaisante) alors que des pourcentages plus élevés au niveau du système tendent à indiquer qu'il existe des problèmes nécessitant un examen plus détaillé.
Un changement de contexte se produit lorsque le CPU arrête d'exécuter un processus particulier et en lance un autre. Étant donné que tout changement de contexte demande que le système d'exploitation prenne contrôle du CPU, des changements de contexte excessifs semblent aller de paires avec des degrés élevés de consommation CPU au niveau du système.
Comme le nom l'indique, les interruptions correspondent à des situations dans lesquelles un changement soudain intervient au niveau du traitement effectué par le CPU.Des interruptions ont généralement lieu en raison d'une activité matérielle (telle qu'un périphérique d'E/S finissant une opération d'E/S) ou en raison d'un logiciel (tel que des interruptions logicielles qui contrôlent le traitement d'applications). Étant donné que les interruptions doivent s'effectuer à un niveau du système, un taux élevé d'interruptions entraîne une consommation de CPU plus élevée au niveau du système.
Un processus peut se trouver dans différents états. Il peut, par exemple :
Attendre qu'une opération d'E/S soit terminée
Attendre que le sous-système de gestion de mémoire traite un défaut de page
Dans ces cas-là, le processus n'a pas besoin du CPU.
Toutefois, après un certain temps, l'état du processus change et ce dernier devient alors exécutable. Comme le nom l'indique, un processus exécutable est un processus capable d'effectuer un travail dés qu'il est programmé pour recevoir du temps CPU. Ceci étant, si plusieurs processus sont exécutables à un moment donné, tous les processus exécutables sauf un[1] doivent attendre leur tour pour être traité par le CPU. En contrôlant le nombre de processus exécutables, il est possible de déterminer le degrés de dépendance de votre système par rapport au CPU.
D'autres métriques de performance reflétant un impact sur l'utilisation du CPU ont tendance à inclure différents services fournis par le système d'exploitation aux processus. Elles peuvent inclure des statistiques relatives à la gestion de la mémoire, au traitement des E/S etc. Ces statistique révèlent également que, lorsqu'un système est sous surveillance, les différentes statistiques ne constituent pas des données complètement indépendantes. En d'autres termes, il se peut que les statistiques d'utilisation du CPU identifient un problème au niveau du sous-système d'E/S ou que les statistiques d'utilisation de la mémoire révèlent un défaut de conception au niveau d'une application.
Par conséquent, lors du contrôle de la performance du système, il n'est pas possible d'examiner une statistique particulière de manière entièrement indépendante ; seulement en prenant en compte la situation globale est-il possible d'extraire des informations utiles de toute statistique recueillie sur la performance.
Le contrôle de la largeur de bande est une opération plus difficile que celui des autres ressources décrites ici. En effet, les statistiques de performance ont tendance à être basées sur les périphériques alors que la plupart des endroits où la largeur de bande est importante ont tendance à se trouver au niveau des bus reliant les périphériques. Dans les cas où plusieurs périphériques partagent un bus commun, les statistiques fournies sur chaque périphérique sembleront peut-être acceptables, mais la charge totale que ces périphériques placent sur le bus est en réalité beaucoup plus importante.
Il peut se poser un autre défit au niveau du contrôle de la largeur de bande, lorsque les statistiques relatives aux périphériques eux-mêmes ne sont pas disponibles. C'est précisément la cas pour des bus d'extension du système et pour les chemins des données[2]. Toutefois, bien que des statistiques 100% précises sur la largeur de bande ne soient pas toujours disponibles, il existe souvent suffisamment d'informations pour permettre un certain niveau d'analyse, en particulier lorsque d'autres statistiques sur le sujet sont prises en compte.
Parmi certaines des statistiques les plus courantes sur la largeur de bande figurent :
Les statistiques relatives à l'interface réseau fournissent une indication sur l'utilisation de la largeur de bande d'un des bus les plus visibles — le réseau.
Ces statistiques en relation avec le réseau peuvent fournir entre autres des indications sur des collisions excessives, des erreurs de transmission et de réception. En utilisant ces statistiques (en particulier si elles sont disponibles pour plus d'un système du réseau), il est possible de résoudre un certain nombre de problèmes en relation avec le réseau, avant même d'utiliser les outils de diagnostic du réseau les plus courants.
Généralement recueilli pour les périphériques blocs d'E/S, tels que des lecteurs disques durs et des lecteurs de bandes haute performance, ce type de statistiques est un bon moyen de déterminer si la limite de la largeur de bandes d'un périphérique particulier est atteinte. En raison de leur nature électromagnétique, les lecteurs de disques et de bandes peuvent seulement effectuer un nombre déterminé d'opérations d'E/S par seconde ; leur performance se détériore rapidement au fur et à mesure que le nombre d'opération se rapproche de la limite.
S'il existe un domaine dans lequel les statistiques de performance abondent, c'est bien celui du contrôle de l'utilisation de la mémoire. En raison de la complexité inhérente aux systèmes d'exploitation dotés de mémoire virtuelle paginée à la demande, les statistiques relatives à l'utilisation de la mémoire prennent de nombreuses formes différentes. C'est à ce niveau qu'a lieu la plupart du travail d'un administrateur système effectuant la gestion des ressources.
Les statistiques énumérées ci-dessous donnent un bref aperçu des statistiques de gestion de mémoire couramment disponibles :
Ces statistiques permettent d'estimer le flux de pages entre la mémoire du système et les périphériques de stockage de masse qui y sont reliés (généralement les disques durs). Des taux élevés pour ces deux types de statistiques indiquent généralement que le système est à court de mémoire physique et effectue des opérations d'écroulement (ou thrashing) ou qu'il utilise plus de ressources système pour charger des pages en mémoire et pour les décharger que pour exécuter des applications.,
Ces statistiques indiquent le degré d'utilisation des pages mises en mémoire. L'absence de pages inactives peut représenter un avertissement quant à un manque de mémoire physique imminent.
Ces statistiques fournissent de plus informations plus détaillées que celles relatives aux pages actives/inactives. Grâce à ces statistiques, il est possible de déterminer les différentes manières selon lesquelles la mémoire est utilisée.
Ces statistiques expliquent le comportement générale de l'échange de mémoire (ou swapping) du système. Des taux excessivement élevés indiquent ici qu'il existe peut-être des problèmes liés à un manque de mémoire.
Pour bien contrôler l'utilisation de la mémoire, il est nécessaire de disposer d'une bonne compréhension du fonctionnement des systèmes d'exploitation dotés de mémoire virtuelle paginée à la demande. Alors qu'un tel sujet pourrait faire l'objet d'un livre entier, nous nous contenterons d'aborder les concepts de base dans le Chapitre 4. En lisant ce chapitre et en passant du temps à effectivement contrôler un système, vous disposerez des bases nécessaires pour ensuite approfondir vos connaissances sur le sujet.
En matière de stockage, il existe généralement deux types de contrôle différents :
Contrôle pour garantir un espace disque suffisant
Contrôle pour identifier des problèmes en relation avec la performance
Il est nécessaire d'effectuer un contrôle aussi bien au niveau du disque que de la performance car il est tout à fait possible d'avoir de sérieux problèmes à un niveau et absolument aucun à l'autre. Par exemple, il est possible qu'un disque dur soit à court d'espace sans pour autant entraîner de problème de performance. De même, il est possible qu'un disque dur, bien que disposant de 99% d'espace libre, fonctionne au-delà de sa capacité en terme de performance.
Toutefois, il est vraisemblable que le système moyen doive faire face à un manque de ressources aussi bien au niveau de l'espace disque que de la performance. Dans de telles circonstances, il y a également de grandes chances que — jusqu'à un certain point — des problèmes dans un domaine aient un impact sur l'autre domaine. Très souvent ce type d'interaction entraîne une performance d'E/S de plus en plus mauvaise au fur et à mesure qu'un disque dur approche de la barre des 0% d'espace libre toutefois, dans des cas où la charge d'E/S est extrême, il est tout à fait possible de ralentir la capacité de traitement des E/S à un point tel que les applications ne peuvent plus tourner correctement.
Dans tous les cas de figure, les statistiques suivantes sont utiles pour le contrôle du stockage :
L'espace libre est probablement la ressource que les administrateurs système surveillent le plus étroitement ; un administrateur ne contrôlant jamais l'espace libre sera un cas rarissime (ou alors, il dispose d'un certain processus de contrôle automatique).
Ces statistiques (telles que le nombre de fichiers par répertoire, la taille moyenne des fichiers, etc.) fournissent des informations supplémentaires plus utiles que le simple pourcentage d'espace libre. Grâce à ces informations détaillées, les administrateurs peuvent configurer le système de manière à optimiser la performance car la charge d'E/S imposée par un système de fichiers peuplé de petits fichiers n'est pas la même que celle correspondant à un système de fichiers composé d'un seul fichier énorme.
Ce genre de statistique constitue un bon moyen de déterminer si les limites de la largeur de bande d'un périphérique particulier ont été atteintes.
Ces statistiques sous forme d'une ventilation légèrement plus détaillée des transferts par seconde permet à un administrateur système de mieux comprendre la nature des charges d'E/S auxquelles un périphérique peut être soumis. Cet aspect peut être critique dans la mesure où certaines technologies de stockage ont des caractéristiques de performance très différentes en ce qui concerne les opérations de lecture par rapport aux opérations d'écriture.
[1] | Dans le cas d'un système informatique doté d'un seul processeur. |
[2] | De plus amples informations sur les bus, sur les chemins des données et sur la largeur de bande sont disponibles dans le Chapitre 3. |
Précédent | Sommaire | Suivant |
Contrôle de la capacité du système | Niveau supérieur | Informations spécifiques à Red Hat Enterprise Linux |