• Aucun résultat trouvé

Meilleur scénario de performance

Dans le document Red Hat Enterprise Linux 3 (Page 72-0)

4. Mémoire physique et mémoire virtuelle

4.5. Implications de la mémoire virtuelle au niveau de la performance

4.5.2. Meilleur scénario de performance

Dans le meilleur des cas, le temps de gestion système nécessaire pour la prise en charge de mémoire virtuelle ne se traduit, dans un système configuré de manière appropriée, que par une faible charge supplémentaire :

Mémoire vive ou RAM — Une mémoire vive suffisante pour tous les jeux de pages de travail et suffisamment de mémoire libre pour traiter tout défaut de page2

Disque — En raison d’une activité de défaut de page limitée, l’impact sur la largeur de bande des E/S de disque ne serait que minimal

CPU — La majorité des cycles CPU se concentrent sur l’exécution même des applications, plutôt que sur l’exécution du code de gestion mémoire du système d’exploitation

Il est important de garder à l’esprit que l’impact de la mémoire virtuelle sur la performance est mini-mal, lorsqu’elle est utilisée aussi peu que possible. En d’autres termes, pour une bonne performance du sous-système de mémoire virtuelle, un élément a une influence décisive : la quantité de mémoire vive (ou RAM) doit être suffisante.

Également d’une extrême importance (bien que moindre dans notre contexte) sont des capacités suf-fisantes en matière d’E/S disque et de CPU. Gardez toutefois à l’esprit que ces ressources aident seulement la performance du système à dégrader plus progressivement lors d’activités de défaut de 2. Un système relativement actif doittoujourseffectuer une certaine activité de défaut de page en raison des défauts de page engendrés par des applications récemment lancées et mises en mémoire.

page et de swapping importantes ; elles n’apportent pas vraiment d’aide en ce qui concerne la perfor-mance du sous-système de mémoire virtuelle (bien qu’elles jouent évidemment un rôle important au niveau de la performance du système en général).

4.6. Informations spécifiques à Red Hat Enterprise Linux

En raison de la complexité inhérente à un système d’exploitation doté d’une mémoire virtuelle paginée à la demande, le contrôle des ressources associées à la mémoire peut être quelque peu déroutant sous Red Hat Enterprise Linux. Il est par conséquent préférable de commencer avec les outils simples et d’avancer progressivement.

À l’aide de la commandefree, il est possible d’obtenir un aperçu concis (bien que simpliste) de l’utilisation de la mémoire et du swap, comme le montre l’extrait ci-dessous :

total used free shared buffers cached

Mem: 1288720 361448 927272 0 27844 187632

-/+ buffers/cache: 145972 1142748

Swap: 522104 0 522104

Notez que ce système ne dispose que de 1,2 Go de mémoire vive (RAM) dont seulement 350 Mo sont en fait utilisés. Comme on peut le supposer avec un système doté d’une telle quantité de RAM libre, aucune partie des 500 Mo de la partition swap n’est utilisée.

Comparez maintenant l’exemple ci-dessus avec celui qui suit :

total used free shared buffers cached

Mem: 255088 246604 8484 0 6492 111320

-/+ buffers/cache: 128792 126296 Swap: 530136 111308 418828

Ce système dispose d’environ 256 Mo de RAM dont la majorité est utilisée, ne laissant qu’environ 8 Mo de libre. Plus de 100 Mo des 512 Mo de la partition swap sont utilisés. Bien que le système en question soit certainement plus limité en termes de mémoire que le système de notre premier exemple, il est nécessaire d’examiner la situation plus en profondeur afin de déterminer si la limitation de mémoire entraîne des problèmes de performance.

Bien que la commandevmstatsoit plus énigmatique quefree, elle a l’avantage de fournir plus d’informations que les seules statistiques sur l’utilisation de la mémoire. Ci-après figure la sortie de la commandevmstat 1 10:

procs memory swap io system cpu

r b w swpd free buff cache si so bi bo in cs us sy id 2 0 0 111304 9728 7036 107204 0 0 6 10 120 24 10 2 89 2 0 0 111304 9728 7036 107204 0 0 0 0 526 1653 96 4 0 1 0 0 111304 9616 7036 107204 0 0 0 0 552 2219 94 5 1 1 0 0 111304 9616 7036 107204 0 0 0 0 624 699 98 2 0 2 0 0 111304 9616 7052 107204 0 0 0 48 603 1466 95 5 0 3 0 0 111304 9620 7052 107204 0 0 0 0 768 932 90 4 6 3 0 0 111304 9440 7076 107360 92 0 244 0 820 1230 85 9 6 2 0 0 111304 9276 7076 107368 0 0 0 0 832 1060 87 6 7 3 0 0 111304 9624 7092 107372 0 0 16 0 813 1655 93 5 2 2 0 2 111304 9624 7108 107372 0 0 0 972 1189 1165 68 9 23

Dans cet extrait de 10 secondes, la quantité de mémoire libre (le champfree) change quelque peu et il y a une certaine activité d’E/S associée au swap (les champssietso), mais d’une manière générale,

ce système fonctionne bien. Ceci étant, il est difficile de connaître l’importance de la charge de travail supplémentaire que le système pourrait accepter, étant donné l’utilisation actuelle de mémoire.

Lors de toute recherche de problème en relation avec la mémoire, il est souvent nécessaire de déter-miner comment le sous-système de mémoire virtuelle de Red Hat Enterprise Linux utilise la mémoire du système. À l’aide de la commandesar, il est possible d’examiner cet aspect de la performance du système de manière plus détaillée.

En parcourant le rapportsar -rsuivant, il est possible d’examiner l’utilisation de la mémoire et du swap en détail :

Linux 2.4.20-1.1931.2.231.2.10.ent (pigdog.example.com) 07/22/2003 12:00:01 AM kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached 12:10:00 AM 240468 1048252 81.34 0 133724 485772 12:20:00 AM 240508 1048212 81.34 0 134172 485600 ...

08:40:00 PM 934132 354588 27.51 0 26080 185364

Average: 324346 964374 74.83 0 96072 467559

Les champskbmemfreeetkbmemusedfournissent des statistiques typiques sur la mémoire libre et la mémoire utilisée, le pourcentage de la mémoire utilisée apparaissant dans le champ%memused. Les champskbbuffersetkbcachedquant à eux indiquent la quantité de kilo-octets de mémoire allouée aux tampons (ou buffers) et au cache de données de tout le système.

Le champkbmemshrdaffiche toujours un zéro pour des systèmes (tels que Red Hat Enterprise Linux) utilisant un noyau Linux 2.4.

Notez que les lignes de ce rapport ont été tronquées afin de tenir sur la page. Ci-après figure la partie restante de chaque ligne à laquelle l’horodatage a été ajouté, afin de faciliter la lecture :

12:00:01 AM kbswpfree kbswpused %swpused

12:10:00 AM 522104 0 0.00

12:20:00 AM 522104 0 0.00

...

08:40:00 PM 522104 0 0.00

Average: 522104 0 0.00

Pour l’utilisation du swap, les champskbswpfreeetkbswpusedprécisent en kilo-octets la quantité d’espace swap libre et utilisé, le champ%swpusedlui, exprimant en pourcentage la quantité d’espace swap utilisé.

Pour en savoir plus sur l’activité d’échange de mémoire (ou swapping) se produisant, consultez le rapportsar -Wdont un exemple figure ci-après :

Linux 2.4.20-1.1931.2.231.2.10.entsmp (raptor.example.com) 07/22/2003 12:00:01 AM pswpin/s pswpout/s

12:10:01 AM 0.15 2.56 12:20:00 AM 0.00 0.00 ...

03:30:01 PM 0.42 2.56

Average: 0.11 0.37

Comme vous pouvez le remarquer, il y avait trois fois moins de pages provenant de swap (pswpin/s) qu’il n’y en avait allant vers swap (pswpout/s).

Pour mieux comprendre comment les pages sont utilisées, reportez-vous au rapportsar -Bsuivant :

Linux 2.4.20-1.1931.2.231.2.10.entsmp (raptor.example.com) 07/22/2003 12:00:01 AM pgpgin/s pgpgout/s activepg inadtypg inaclnpg inatarpg

12:10:00 AM 0.03 8.61 195393 20654 30352 49279

12:20:00 AM 0.01 7.51 195385 20655 30336 49275

...

08:40:00 PM 0.00 7.79 71236 1371 6760 15873

Average: 201.54 201.54 169367 18999 35146 44702

Il est possible de déterminer ici le nombre de blocs paginés en mémoire par seconde depuis le disque (pgpgin/s) et celui des blocs paginés sur le disque depuis la mémoire (pgpgout/s). Ces statistiques sont utilisées comme baromètre de l’activité globale de la mémoire virtuelle.

Toutefois, il est possible d’obtenir plus d’informations en examinant les autres champs de ce rap-port. Le noyau de Red Hat Enterprise Linux identifie toutes les pages comme étant soit actives, soit inactives. Comme le nom l’indique, des pages actives sont d’une manière ou d’une autre en cours d’utilisation (en temps que pages de processus ou tampon par exemple) alors que des pages inactives ne le sont pas. Notre exemple de rapport montre que la liste des pages actives (le champactivepg) est en moyenne de 660 Mo3.

Le reste des champs contenus dans ce rapport se concentrent sur la liste des pages inactives — des pages qui pour une raison ou une autre n’ont pas été récemment utilisées. Le champinadtypgindique le nombre de pages inactives qui sontsales(ou dirty, c’est-à-dire qui ont été modifiées) et peuvent être enregistrées sur le disque. Le champinaclnpgd’autre part, spécifie le nombre de pages inactives qui sontpropres(ou clean, c’est-à-dire qui n’ont pas été modifiées) et ne doivent par conséquent pas être enregistrées sur disque.

Le champinatarpgindique la taille souhaitée de la liste de pages inactives. Cette valeur, calculée par le noyau Linux, est déterminée de sorte que la liste des pages inactives demeure suffisamment grande pour servir de réserve en cas de remplacement de pages.

Pour obtenir des informations supplémentaires sur l’état (et plus particulièrement sur la fréquence à laquelle les pages changent d’état), consultez le rapportsar -Rdont un exemple figure ci-après : Linux 2.4.20-1.1931.2.231.2.10.entsmp (raptor.example.com) 07/22/2003 12:00:01 AM frmpg/s shmpg/s bufpg/s campg/s

12:10:00 AM -0.10 0.00 0.12 -0.07

12:20:00 AM 0.02 0.00 0.19 -0.07

...

08:50:01 PM -3.19 0.00 0.46 0.81

Average: 0.01 0.00 -0.00 -0.00

Les statistiques apparaissant dans le rapportsarci-dessus sont uniques dans le sens où les valeurs sont positives, négatives ou équivalentes à zéro. Lorsque la valeur est positive, elle indique le taux selon lequel des pages de ce type augmentent. Lorsqu’elle est négative, elle indique le taux selon lequel des pages de ce type diminuent. Finalement, une valeur de zéro indique que des pages de ce type n’augmentent ni ne diminuent.

Dans cet exemple, le dernier échantillon montre qu’une quantité légèrement supérieure à trois pages par seconde est allouée dans la liste des pages libres (le champfrmpg/set que presque une page par seconde est ajoutée au cache de pages (le champcampg/s). La liste des pages utilisées comme tampons (le champbugpg/s) a augmenté d’environ une page toutes les deux secondes, alors que la liste des pages de mémoire partagée (le champshmpg/s) n’a elle, ni augmenté, ni diminué en nombre.

3. Sous Red Hat Enterprise Linux sur un système x86 utilisé dans cet exemple, la taille de la page est de 4096 octets. Il est fort possible que des systèmes basés sur d’autres architectures aient des tailles de pages différentes.

4.7. Ressources supplémentaires

Cette section inclut un certain nombre de ressources pouvant être utilisées pour approfondir vos connaissances sur le contrôle des ressources et sur des sujets spécifiques à Red Hat Enterprise Li-nux qui ont été abordés dans ce chapitre.

4.7.1. Documentation installée

Les ressources suivantes sont installées lors d’une installation normale de Red Hat Enterprise Linux et peuvent vous aider à acquérir des connaissances plus étendues sur les sujets abordés dans ce chapitre.

Page de manuel defree(1)— Fournit des statistiques sur la mémoire libre et sur la mémoire utilisée.

Page de manuel devmstat(8)— Affiche un aperçu concis de l’utilisation des processus, de la mémoire, du swap, des E/S, du système et du CPU.

Page de manuel desar(1)— Crée des rapports sur l’utilisation des ressources du matériel.

Page de manuel desa2(8) — Crée des fichiers de rapports quotidiens sur l’utilisation des ressources du système.

4.7.2. Sites Web utiles

http://linuxperf.nl.linux.org/ — Page d’accueil de Linux Performance Tuning. Elle fournit un bon aperçu général du contrôle des ressources afin de régler la performance. La liste de diffusion semble regrettablement avoir été inondée de pourriel et n’est par conséquent plus utilisée.

http://people.redhat.com/alikins/system_tuning.html — Informations sur le réglage de la mance pour les utilisateurs de Linux. Une approche peu conventionnelle des réglages de la perfor-mance et du contrôle des ressources de serveurs.

http://www.linuxjournal.com/article.php ?sid=2396 — Outils de contrôle de la performance pour Linux. Cette page du Linux Journal s’adresse plus à l’administrateur souhaitant écrire une solution personnalisée sous forme de graphiques de performance. Cette page datant d’il y a quelques années, il est fort possible que certaines des informations ne soient plus courantes, mais l’idée et l’exécution générales n’en demeurent pas moins valables.

4.7.3. Livres sur le sujet

Les ressources suivantes traitent de différents sujets en relation avec le contrôle des ressources et constituent de bonnes sources d’informations pour les administrateurs de systèmes Red Hat Enterprise Linux:

LeGuide d’administration système de Red Hat Enterprise Linux; Red Hat, Inc. — Inclut un chapitre sur de nombreux outils de contrôle des ressources abordés dans ce guide.

Linux Performance Tuning and Capacity Planningde Jason R. Fink er Matthew D. Sherer ; Sams

— Fournit un horizon plus détaillé des outils de contrôle des ressources examinés dans ce guide et en inclut d’autres qui pourraient être appropriés pour des besoins plus spécifiques lors du contrôle des ressources.

Red Hat Linux Security and Optimizationde Mohammed J. Kabir ; Red Hat Press — Les 150 premières pages de ce livre examinent les problèmes liés à la performance et comptent des chapitres consacrés aux problèmes de performance rencontrés en particulier au niveau du réseau, du Web, de la messagerie et des serveurs de fichiers.

Linux Administration Handbookde Evi Nemeth, Garth Snyder et Trent R. Hein ; Prentice Hall

— Fournit un petit chapitre d’une portée semblable à celle de ce guide, mais inclut également une section intéressante sur la manière d’effectuer un diagnostic d’un système qui a soudainement ralenti.

Linux System Administration : A User’s Guidede Marcel Gagne ; Addison Wesley Professional — Contient un petit chapitre sur le réglage et le contrôle de la performance.

Essential System Administration(3ème Édition) de Aeleen Frisch ; O’Reilly & Associates — Ce chapitre sur la gestion des ressources du système contient de bonnes informations générales, y compris certains aspects spécifiques à Linux.

System Performance Tuning (2ème Édition) de Gian-Paolo D. Musumeci et Mike Loukides ; O’Reilly & Associates — Bien que l’accent soit mis essentiellement sur des implémentations UNIX plus traditionnelles, ce livre inclut néanmoins de nombreuses références spécifiques à Linux.

Gestion du stockage

S’il y a un aspect du travail de l’administrateur système qui monopolise la plupart de son temps, c’est bien la gestion du stockage. On a l’impression que les disques sont toujours à cours de mémoire, qu’ils sont surchargés par une activité d’entrée sorties trop intense ou qu’ils tombent en panne de façon inattendue. Dans de telles conditions, il est primordiale de disposer de solides connaissances en matière de stockage disque, afin d’être un bon administrateur système.

5.1. Bref aperçu du matériel de stockage

Avant de pouvoir gérer le stockage, il est essentiel de comprendre le matériel sur lequel les données sont stockées. À moins que vous ne disposiez d’un minimum de connaissances sur le fonctionnement des périphériques de stockage de masse, vous courrez le risque de vous trouver dans une situation où vous devrez faire face à un problème lié au stockage mais ne disposerez pas des connaissances de base nécessaires pour interpréter le problème en question. En acquérant une compréhension élémentaire du fonctionnement du matériel sous-jacent, vous devriez être en mesure de déterminer plus facilement, si le sous-système de stockage de votre ordinateur fonctionnent correctement.

La grande majorité des périphériques de stockage de masse utilisent un support rotatif d’un type ou d’un autre et prennent en charge l’accès aléatoire de données sur ce média. Ainsi, les composants suivants seront présents sous une forme ou sous une autre, dans presque tout périphérique de stockage de masse :

Plateau de disque

Périphérique de lecture/écriture de données

Bras d’accès

Les sections suivantes examinent en détail chacun de ces composants.

5.1.1. Plateaux de disque

Les supports rotatifs utilisés par presque tous les périphériques de stockage se présentent sous la forme d’un ou plusieurs plateaux plats et ronds. Le plateau peut être composé de matériaux très variés, tels que l’aluminium, le verre et le polycarbone.

La face de chaque plateau est traitée de telle sorte qu’elle puisse permettre le stockage de données. La nature exacte du traitement dépend de la technologie de stockage de données utilisée. La technologie de stockage de données la plus courante repose sur la propriété du magnétisme ; dans ce cas, les plateaux sont couverts d’un composé montrant de bonnes caractéristiques magnétiques.

Une autre technologie courante de stockage de données repose sur des principes optiques ; dans ces cas-là, les plateaux sont couverts de matériaux dont les propriétés optiques peuvent être modifiées, permettant par là-même le stockage de données de manière optique1.

Indépendamment du type de technologie utilisée, les plateaux de disque tournent, permettant à la totalité de leur face de passer à proximité d’un autre composant de la plupart des périphériques de stockage de masse — le périphérique de lecture/écriture de données.

1. Certains périphériques optiques — particulièrementles lecteurs des CD-ROM — ont recours à des approches quelque peu différentes en matière de stockage de données ; ces différences seront soulignées plus tard dans ce chapitre, lorsque les sujets y faisant référence seront abordés.

5.1.2. Périphérique de lecture/écriture de données

Le périphérique de lecture/écriture de données est le composant prenant les bits et octets qu’un sys-tème informatique utilise pour son fonctionnement et le convertit ensuite en variations magnétiques ou optiques nécessaires pour interagir avec les matériaux recouvrant la face des plateaux de disque.

Parfois, les conditions dans lesquelles ces périphériques doivent fonctionner relèvent du défi. Dans le cas du stockage de masse effectué de manière magnétique par exemple, les périphériques de lec-ture/écriture (appeléstêtes) doivent être positionnées très près de la surface du plateau. Toutefois, si la tête et la face du plateau de disque venaient à entrer en contact, la friction produite endommagerait très sérieusement aussi bien la tête que le plateau. En conséquence, la surface de la tête et celle du plateau sont minutieusement polies, permettant à la tête d’utiliser un coussin l’air générée par la rota-tion des plateaux pour rester juste au-dessus de la surface du plateau sans le toucher, "survolant" ainsi ce dernier à une altitude inférieure à l’épaisseur d’un cheveu. C’est d’ailleurs la raison pour laquelle les disques durs risquent être endommagés par les chocs, les changements soudains de température et toute contamination transmissible par l’air.

Les défis auxquels les têtes optiques doivent faire face sont quelque peu différents de ceux auxquels les têtes magnétiques sont confrontés — dans le cas des têtes optiques, l’assemblage de la tête doit rester à une distance relativement constante par rapport à la surface du plateau, sinon, les lentilles utilisées pour la mise au point sur le plateau ne produiront pas une image d’une qualité suffisante.

Ceci dit, pour le stockage de données, les têtes utilisent dans les deux cas une toute petite partie de la superficie du plateau. Lors de la rotation de ce dernier sous les têtes, la superficie se transforme en un cercle concentrique très fin.

Si telle était vraiment le fonctionnement des périphériques de stockage de masse, 99% de la superfi-cie du plateau serait gaspillée. Certes des têtes supplémentaires pourraient être installées, mais pour pouvoir utiliser toute la superficie du plateau, des milliers de têtes seraient nécessaires. Une approche plus pratique consiste donc à déplacer la tête sur la surface du plateau.

5.1.3. Bras d’accès

En utilisant une tête montée sur un bras capable de balayer toute la surface du plateau, il est possible d’utiliser le plateau complètement pour le stockage de données. Toutefois, le bras d’accès doit pouvoir faire deux choses :

Bouger avec une grande rapidité

Bouger avec une grande précision

Le bras d’accès doit se déplacer aussi rapidement que possible, car le temps nécessaire à son déplace-ment d’un point à un autre est du temps de perdu. En effet, aucune donnée ne peut être lue tant que le bras d’accès n’est pas immobile2.

Le bras d’accès doit pouvoir se déplacer avec une grande précision parce que, comme nous l’avons mentionnée précédemment, la superficie utilisée par la tête est infime. Par conséquent, afin d’utiliser la capacité de stockage du plateau de manière efficace, il est nécessaire de pouvoir déplacer la tête juste assez pour s’assurer que toute donnée enregistrée au nouvel emplacement n’écrase pas les données écrites à l’emplacement précédent. À un niveau conceptuel, ce processus divise la face du plateau en une ou plusieurs centaines "d’anneaux" oupistes. Le déplacement du bras d’accès d’une piste à 2. Dans certains périphériques optiques (tels que les lecteurs de CD-ROM) le bras d’accès bougeant en per-manence, l’assemblage de la tête effectue une déplacement en spirale au-dessus de la face du plateau. Ce point représente la différence fondamentale existant dans l’utilisation du support de stockage et reflète les origines du CD-ROM en tant que support pour le stockage de musique, où la recherche de l’information est une opération

Le bras d’accès doit pouvoir se déplacer avec une grande précision parce que, comme nous l’avons mentionnée précédemment, la superficie utilisée par la tête est infime. Par conséquent, afin d’utiliser la capacité de stockage du plateau de manière efficace, il est nécessaire de pouvoir déplacer la tête juste assez pour s’assurer que toute donnée enregistrée au nouvel emplacement n’écrase pas les données écrites à l’emplacement précédent. À un niveau conceptuel, ce processus divise la face du plateau en une ou plusieurs centaines "d’anneaux" oupistes. Le déplacement du bras d’accès d’une piste à 2. Dans certains périphériques optiques (tels que les lecteurs de CD-ROM) le bras d’accès bougeant en per-manence, l’assemblage de la tête effectue une déplacement en spirale au-dessus de la face du plateau. Ce point représente la différence fondamentale existant dans l’utilisation du support de stockage et reflète les origines du CD-ROM en tant que support pour le stockage de musique, où la recherche de l’information est une opération

Dans le document Red Hat Enterprise Linux 3 (Page 72-0)