Sous Red Hat Enterprise Linux, le contr�le de l'utilisation de la largeur de bande et du CPU se fait gr�ce � l'utilisation des outils examin�s dans le Chapitre 2�; il est par cons�quent recommand� de lire ce chapitre (si ce n'est pas d�j� fait) avant de poursuivre.
3.3.1. Contr�le de la largeur de bande sur Red Hat Enterprise Linux
Comme nous l'avons mentionn� dans la Section 2.4.2, il est difficile de contr�ler directement l'utilisation de la largeur de bande. N�anmoins, en analysant les statistiques au niveau des p�riph�riques, il est possible d'�valuer grossi�rement si une largeur de bande insuffisante pose un probl�me quelconque pour votre syst�me.
Avec vmstat, il est possible de d�terminer si l'activit� g�n�rale des p�riph�riques est excessive, en examinant les champs bi et bo�; en outre, les champs si et so fournissent des informations un peu plus pr�cises sur le degr� d'activit� du disque r�sultant des activit�s d'E/S associ�es au swap.
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
1 0 0 0 248088 158636 480804 0 0 2 6 120 120 10 3 87
|
Dans l'extrait ci-dessus, le champ bi montre que deux blocs par seconde sont �crits sur les p�riph�riques blocs (essentiellement les disques durs), alors que le champ bo indique lui que six blocs par seconde sont lus depuis les p�riph�riques blocs. Il est �galement possible de voir qu'aucune partie de cette activit� n'est due � un �change de m�moire (aussi appel� swapping) car les champs si et so montrent tous les deux un taux d'activit�s d'E/S associ� au swap �quivalent � z�ro kilo-octet/seconde.
En utilisant iostat, il est possible d'obtenir des informations plus pr�cises sur l'activit� associ�e au disque�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (raptor.example.com) 07/21/2003
avg-cpu: %user %nice %sys %idle
5.34 4.60 2.83 87.24
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
dev8-0 1.10 6.21 25.08 961342 3881610
dev8-1 0.00 0.00 0.00 16 0
|
Cette sortie montre que le p�riph�rique dont le nombre majeur est 8 (correspondant � /dev/sda, le premier disque SCSI) avait une moyenne l�g�rement surp�rieure � une op�ration d'E/S par seconde (le champ tsp). La plupart de l'activit� d'E/S de ce p�riph�rique �tait constitu�e par des op�rations d'�criture (le champ Blk_wrtn), avec un peu plus de 25 blocs �crits par seconde (le champ Blk_wrtn/s).
Dans le cas o� des informations encore plus d�taill�es seraient n�cessaires, utilisez l'option -x de iostat�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (raptor.example.com) 07/21/2003
avg-cpu: %user %nice %sys %idle
5.37 4.54 2.81 87.27
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz
/dev/sda 13.57 2.86 0.36 0.77 32.20 29.05 16.10 14.53 54.52
/dev/sda1 0.17 0.00 0.00 0.00 0.34 0.00 0.17 0.00 133.40
/dev/sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11.56
/dev/sda3 0.31 2.11 0.29 0.62 4.74 21.80 2.37 10.90 29.42
/dev/sda4 0.09 0.75 0.04 0.15 1.06 7.24 0.53 3.62 43.01
|
Outre le fait que les lignes plus longues contiennent plus de champs, la premi�re chose dont il faut se souvenir est que cette sortie d'iostat affiche d�sormais des statistiques sur les partitions de mani�re individuelle. En utilisant df pour associer les points de montage aux noms de p�riph�riques, il est possible d'utiliser ce rapport pour d�terminer par exemple si la partition /home est soumise � une charge excessive.
En fait, la sortie renvoy�e par la commande iostat -x est compos�e de lignes plus longues contenant plus d'informations que l'extrait ci-dessus, comme le montre le reste de chaque ligne reproduit ci-apr�s (notez que la colonne relative aux p�riph�riques faisant partie de l'extrait d'origine a �t� rajout�e ici pour permettre une lecture plus facile):
Device: avgqu-sz await svctm %util
/dev/sda 0.24 20.86 3.80 0.43
/dev/sda1 0.00 141.18 122.73 0.03
/dev/sda2 0.00 6.00 6.00 0.00
/dev/sda3 0.12 12.84 2.68 0.24
/dev/sda4 0.11 57.47 8.94 0.17
|
Dans cet exemple, il est int�ressant de remarquer que /dev/sda2 est la partition swap du syst�me�; �tant donn� les nombreux champs affichant 0.00, il est �vident que le swapping ne pose aucun probl�me pour le syst�me.
Le deuxi�me �l�ment de la colonne de p�riph�riques,/dev/sda1, est un autre �l�ment int�ressant en raison des statistiques inhabituelles de cette partition �; en effet, l'activit� globale semble faible et pourtant, la taille moyenne des requ�tes d'E/S (le champ avgrq-sz), le temps d'attente moyen (le champ await) et le temps de service moyen (le champ svctm) sont beaucoup plus importants que pour les autres partitons�; pourquoi�? Parce que cette partition contient le r�pertoire /boot/, qui est l'endroit o� le noyau et le disque de m�moire vive initiale (ramdisk) sont stock�s. Lorsque le syst�me d�marre, les E/S des op�rations de lecture (notez bien que seuls les champs relatifs � rsec/s et rkB/s n'affichent pas de z�ros�; d'une mani�re g�n�rale, aucune op�ration d'�criture n'est effectu�e ici) utilis�es lors de ce processus se font pour de nombreux blocs, entra�nant des temps d'attente et de service relativement longs, comme l'affiche la sortie d'iostat.
Il est possible d'utiliser sar pour un affichage � plus long terme des statistiques d'E/S�; la commande sar -b affiche par exemple, un rapport d'E/S g�n�ral comme le montre l'extrait ci-dessous�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (raptor.example.com) 07/21/2003
12:00:00 AM tps rtps wtps bread/s bwrtn/s
12:10:00 AM 0.51 0.01 0.50 0.25 14.32
12:20:01 AM 0.48 0.00 0.48 0.00 13.32
…
06:00:02 PM 1.24 0.00 1.24 0.01 36.23
Average: 1.11 0.31 0.80 68.14 34.79
|
Ici, comme dans l'affichage initial d'iostat, les statistiques sont regroup�es pour tous les p�riph�riques blocs.
Un autre rapport sur les E/S peut �tre cr�� gr�ce � sar -d, comme le montre l'extrait suivant�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (raptor.example.com) 07/21/2003
12:00:00 AM DEV tps sect/s
12:10:00 AM dev8-0 0.51 14.57
12:10:00 AM dev8-1 0.00 0.00
12:20:01 AM dev8-0 0.48 13.32
12:20:01 AM dev8-1 0.00 0.00
…
06:00:02 PM dev8-0 1.24 36.25
06:00:02 PM dev8-1 0.00 0.00
Average: dev8-0 1.11 102.93
Average: dev8-1 0.00 0.00
|
Ce rapport fournit certes des informations p�riph�rique par p�riph�rique, mais de mani�re relativement superficielle.
Malgr� l'absence de statistiques explicites montrant l'utilisation de la largeur de bande pour un chemin des donn�es ou un bus sp�cifique, il est au moins possible d'une part de voir l'activit� des p�riph�riques et d'autre part, d'utiliser cette derni�re afin de d�terminer indirectement le chargement du bus.
3.3.2. Contr�le de l'utilisation CPU sur Red Hat Enterprise Linux
Contrairement � la largeur de bande, le contr�le de l'utilisation CPU est une t�che relativement simple. Que ce soit gr�ce � un simple pourcentage d'utilisation CPU dans le Moniteur syst�me de GNOME ou aux statistiques plus d�taill�es rapport�es par la commande sar, il est possible de d�terminer d'une part combien de puissance CPU est consomm�e et d'autre part, quel �l�ment la consomme.
Au-del� du Moniteur syst�me de GNOME, il existe un autre outil de contr�le des ressources � savoir, top, le premier outil abord� dans le Chapitre 2, qui fournit lui, une repr�sentation plus d�taill�e de l'utilisation CPU. Ci-apr�s figure un rapport �tabli par la commande top depuis un poste de travail � double processeur�:
9:44pm up 2 days, 2 min, 1 user, load average: 0.14, 0.12, 0.09
90 processes: 82 sleeping, 1 running, 7 zombie, 0 stopped
CPU0 states: 0.4% user, 1.1% system, 0.0% nice, 97.4% idle
CPU1 states: 0.5% user, 1.3% system, 0.0% nice, 97.1% idle
Mem: 1288720K av, 1056260K used, 232460K free, 0K shrd, 145644K buff
Swap: 522104K av, 0K used, 522104K free 469764K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
30997 ed 16 0 1100 1100 840 R 1.7 0.0 0:00 top
1120 root 5 -10 249M 174M 71508 S < 0.9 13.8 254:59 X
1260 ed 15 0 54408 53M 6864 S 0.7 4.2 12:09 gnome-terminal
888 root 15 0 2428 2428 1796 S 0.1 0.1 0:06 sendmail
1264 ed 15 0 16336 15M 9480 S 0.1 1.2 1:58 rhn-applet-gui
1 root 15 0 476 476 424 S 0.0 0.0 0:05 init
2 root 0K 0 0 0 0 SW 0.0 0.0 0:00 migration_CPU0
3 root 0K 0 0 0 0 SW 0.0 0.0 0:00 migration_CPU1
4 root 15 0 0 0 0 SW 0.0 0.0 0:01 keventd
5 root 34 19 0 0 0 SWN 0.0 0.0 0:00 ksoftirqd_CPU0
6 root 34 19 0 0 0 SWN 0.0 0.0 0:00 ksoftirqd_CPU1
7 root 15 0 0 0 0 SW 0.0 0.0 0:05 kswapd
8 root 15 0 0 0 0 SW 0.0 0.0 0:00 bdflush
9 root 15 0 0 0 0 SW 0.0 0.0 0:01 kupdated
10 root 25 0 0 0 0 SW 0.0 0.0 0:00 mdrecoveryd
|
La premi�re information relative au CPU se trouve sur la toute premi�re ligne�: la moyenne de charge. Cette derni�re est repr�sent�e par un chiffre correspondant au nombre moyen de processus ex�cutables sur le syst�me. La moyenne de charge est souvent exprim�e sous forme de trois groupes de chiffres (de la m�me mani�re que top) qui correspondent respectivement � la moyenne de charge de la derni�re minute et des 5, 15 derni�res minutes�; dans notre exemple, le syst�me n'�tait pas tr�s occup�.
La ligne suivante, bien que n'�tant pas �troitement li�e � l'utilisation CPU a tout de m�me une relation indirecte avec cette derni�re, dans la mesure o� elle affiche le nombre de processus ex�cutables (un seul dans le cas pr�sent -- souvenez-vous de ce chiffre car il a une signification particuli�re dans cet exemple). Le nombre de processus ex�cutables repr�sente un bon indicateur du degr� de limitation dict� par le CPU.
Viennent ensuite deux lignes affichant l'utilisation courante de chacun des deux CPU sur le syst�me. Les statistiques d'utilisation montrent si l'augmentation des cycles CPU �taient le r�sultat d'un traitement intense au niveau de l'utilisateur ou au niveau du syst�me�; appara�t �galement ici une statistique indiquant le degr� selon lequel les processus aux priorit�s de programmation modifi�es sont la cause d'une augmentation du temps CPU. Finalement, appara�t une statistique relative au temps d'inactivit�.
Plus bas dans la section de l'affichage relative aux processus figurent des statistiques montrant que top lui-m�me est le processus utilisant le plus de puissance CPU�; en d'autres termes, le seul processus sur ce syst�me qui autrement serait ex�cutable est top prenant une "image" de lui-m�me.
| Astuce |
---|
| Il est important de ne pas oublier que l'op�ration consistant � ex�cuter un moniteur de syst�me a un impact sur les statistiques d'utilisation des ressources que vous obtenez. Tel est le cas, jusqu'� un certain point, pour tous les moniteurs bas�s sur des logiciels. |
Afin d'obtenir de plus amples informations sur l'utilisation CPU, il est n�cessaire de changer d'outil. En examinant la sortie de vmstat, la vue d'ensemble du syst�me de notre exemple est l�g�rement diff�rente, comme le montre l'extrait suivant�:
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
1 0 0 0 233276 146636 469808 0 0 7 7 14 27 10 3 87
0 0 0 0 233276 146636 469808 0 0 0 0 523 138 3 0 96
0 0 0 0 233276 146636 469808 0 0 0 0 557 385 2 1 97
0 0 0 0 233276 146636 469808 0 0 0 0 544 343 2 0 97
0 0 0 0 233276 146636 469808 0 0 0 0 517 89 2 0 98
0 0 0 0 233276 146636 469808 0 0 0 32 518 102 2 0 98
0 0 0 0 233276 146636 469808 0 0 0 0 516 91 2 1 98
0 0 0 0 233276 146636 469808 0 0 0 0 516 72 2 0 98
0 0 0 0 233276 146636 469808 0 0 0 0 516 88 2 0 97
0 0 0 0 233276 146636 469808 0 0 0 0 516 81 2 0 97
|
Les informations ci-dessus ont �t� obtenues gr�ce � la commande vmstat 1 10 qui recueille des �chantillons sur le syst�me toutes les secondes, dix fois de suite. Au premier abord, les statistiques relatives au CPU (� savoir les champs us, sy et id) semblent similaires � celles affich�es par top, ou peut-�tre m�me l�g�rement moins d�taill�es. N�anmoins, contrairement � top, il est possible d'obtenir ici un certain nombre d'informations sur la mani�re dont le CPU est utilis�.
En examinant les champs system, on peut voir que le CPU traite en moyenne environ 500 interruptions par seconde et qu'il alterne entre les processus de 80 � presque 400 fois par seconde. Si vous pensez que ces chiffres repr�sentent une activit� intense, d�trompez-vous car les op�rations de traitement au niveau de l'utilisateur (le champ us) atteignent seulement 2% en moyenne, alors que celles effectu�es au niveau du syst�me (le champs sy) sont g�n�ralement inf�rieures � 1%. Dans cet exemple, il s'agit �galement d'un syst�me inactif.
En examinant les outils offerts par Sysstat, on peut voir que iostat et mpstat n'offrent que peu d'informations suppl�mentaires par rapport aux sorties obtenues avec top et vmstat. Toutefois, sar cr�e un certain nombre de rapports pouvant se r�v�ler utiles lors du contr�le de l'utilisation CPU.
Le premier rapport est obtenu gr�ce � la commande sar -q qui affiche la longueur de la file d'attente des processus ex�cutables (run), le nombre total des processus et les moyennes de charge enregistr�s lors de la derni�re minute et au cours des 5 derni�res minutes. Ci-apr�s figure un exemple de ce rapport�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com) 07/21/2003
12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5
12:10:00 AM 3 122 0.07 0.28
12:20:01 AM 5 123 0.00 0.03
…
09:50:00 AM 5 124 0.67 0.65
Average: 4 123 0.26 0.26
|
Dans cet exemple, le syst�me est certes toujours occup� (puisque plus d'un processus est ex�cutable � tout moment donn�), mais il n'est pas excessivement charg� (car ce syst�me pr�cis est dot� de plus d'un processeur).
Le rapport sar ci-dessous qui fournit des informations sur le CPU est produit par la commande sar -u�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com) 07/21/2003
12:00:01 AM CPU %user %nice %system %idle
12:10:00 AM all 3.69 20.10 1.06 75.15
12:20:01 AM all 1.73 0.22 0.80 97.25
…
10:00:00 AM all 35.17 0.83 1.06 62.93
Average: all 7.47 4.85 3.87 83.81
|
Les statistiques contenues dans ce rapport ne sont pas vraiment diff�rentes de celles fournies par de nombreux autres outils. Toutefois, le gros avantage dans le cas pr�sent est que sar fournit ces donn�es de mani�re constante et par l� m�me, repr�sente une commande beaucoup plus utile pour obtenir des moyennes � long terme ou pour cr�er des graphiques sur l'utilisation CPU.
Sur des syst�mes � processeurs multiples, la commande sar -U permet de fournir des statistiques aussi bien pour un processeur particulier que pour l'ensemble des processeurs. Ci-apr�s figure un exemple de sortie renvoy�e par sar -U ALL�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com) 07/21/2003
12:00:01 AM CPU %user %nice %system %idle
12:10:00 AM 0 3.46 21.47 1.09 73.98
12:10:00 AM 1 3.91 18.73 1.03 76.33
12:20:01 AM 0 1.63 0.25 0.78 97.34
12:20:01 AM 1 1.82 0.20 0.81 97.17
…
10:00:00 AM 0 39.12 0.75 1.04 59.09
10:00:00 AM 1 31.22 0.92 1.09 66.77
Average: 0 7.61 4.91 3.86 83.61
Average: 1 7.33 4.78 3.88 84.02
|
La commande sar -w �tablit un rapport sur le nombre de changements de contextes par seconde et permet par l� m�me, d'obtenir des informations suppl�mentaires sur les endroits monopolisant les cycles CPU�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com) 07/21/2003
12:00:01 AM cswch/s
12:10:00 AM 537.97
12:20:01 AM 339.43
…
10:10:00 AM 319.42
Average: 1158.25
|
Il est �galement possible de cr�er deux rapports sar diff�rents fournissant des informations sur l'activit� d'interruption. Le premier (produit � l'aide de la commande sar -I SUM) affiche une seule statistique sur les "interruptions par seconde"�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com) 07/21/2003
12:00:01 AM INTR intr/s
12:10:00 AM sum 539.15
12:20:01 AM sum 539.49
…
10:40:01 AM sum 539.10
Average: sum 541.00
|
� l'aide de la commande sar -I PROC, il est possible de ventiler les donn�es relatives � l'activit� d'interruption par processeur (sur des syst�mes � processeurs multiples) et par niveau d'interruption (de 0 � 15) comme le montre l'extrait ci-dessous�:
Linux 2.4.21-1.1931.2.349.2.2.entsmp (pigdog.example.com) 07/21/2003
12:00:00 AM CPU i000/s i001/s i002/s i008/s i009/s i011/s i012/s
12:10:01 AM 0 512.01 0.00 0.00 0.00 3.44 0.00 0.00
12:10:01 AM CPU i000/s i001/s i002/s i008/s i009/s i011/s i012/s
12:20:01 AM 0 512.00 0.00 0.00 0.00 3.73 0.00 0.00
…
10:30:01 AM CPU i000/s i001/s i002/s i003/s i008/s i009/s i010/s
10:40:02 AM 0 512.00 1.67 0.00 0.00 0.00 15.08 0.00
Average: 0 512.00 0.42 0.00 N/A 0.00 6.03 N/A
|
Ce rapport (tronqu� afin de tenir sur la page) comprend une colonne par niveau d'interruption (le champ i002/s illustrant le taux pour le niveau 2 d'interruption). Si ce syst�me �tait dot� de processeurs multiples, la sortie comprendrait une ligne par p�riode d'�chantillonnage et ce, pour chaque CPU.
Un autre point important � noter concernant ce rapport est que sar ajoute ou retire des champs d'interruption sp�cifiques, si aucune information n'est recueillie pour le champ en question. Comme le montre l'exemple ci-dessus, la fin du rapport inclut des niveaux d'interruption (� savoir 3 et 10) qui n'apparaissaient pas au d�but de la p�riode d'�chantillonnage.
| Remarque |
---|
| Il existe deux autres rapports sar fournissant des informations sur les interruptions — sar -I ALL et sar -I XALL. Toutefois, la configuration par d�faut de l'utilitaire de recueil de donn�es sadc ne r�colte pas les informations n�cessaires pour ces rapports. Pour permettre la cr�ation de tels rapports, il suffit de modifier le fichier /etc/cron.d/sysstat en modifiant la ligne suivante�: */10 * * * * root /usr/lib/sa/sa1 1 1
|
de sorte � qu'elle ressemble � la ligne ci-dessous�: */10 * * * * root /usr/lib/sa/sa1 -I 1 1
|
Notez bien que cette modification donne � sadc l'instruction de recueillir des donn�es suppl�mentaires et que par cons�quent, elle entra�ne la cr�ation de fichiers de donn�es plus volumineux. Il est donc essentiel de vous assurez que la configuration de votre syst�me permet bien prendre en charge une consommation d'espace suppl�mentaire. |