Agence web » Actualités du digital » La mémoire, le processeur ou les E / S de votre système Linux sont-ils liés? –

La mémoire, le processeur ou les E / S de votre système Linux sont-ils liés? –

Shutterstock / Solarseven

Le système fonctionne lentement? Si tel est le cas, votre système sera lié à la mémoire, au processeur ou aux E / S. Cet article vous montrera un moyen rapide de savoir lequel des trois il s’agit, vous permettant ainsi d’améliorer les performances du système en connaissance de cause.

Mémoire, calcul (CPU) ou E / S lié?

Chaque fois que votre système fonctionne lentement, cela est presque toujours dû au composant le plus lent ou à la chaîne de composants de votre système. Cela peut parfois être causé par un logiciel, mais souvent, c’est le matériel qui est le coupable.

Par exemple, si vous avez un disque très ancien et lent – par exemple un disque rotatif à 5400 tr / min encore assez courant, souvent appelé disque dur ou disque dur – ce disque peut être le goulot dans votre système.

Pensez-y comme des tuyaux avec de l’eau qui les traverse. Imaginez la mémoire de votre système, l’unité informatique (votre processeur ou l’unité centrale de traitement – la puce / processeur principal de votre système) et les disques (faisant partie du système d’E / S ou d’entrée / sortie) tous comme des conduites d’eau. Maintenant, imaginez que les composants les plus lents sont un tuyau plus petit et que les composants les plus rapides sont un tuyau plus gros. Si vous aviez besoin de transférer 10L à travers chaque tuyau, le tuyau le plus lent prendra beaucoup plus de temps que le plus grand.

Sous Linux, les principaux goulots d’étranglement sont la mémoire (RAM), le calcul (CPU) ou les E / S (opérations sur disque). Dans le cas de la mémoire, la vitesse peut être un facteur, mais le manque de mémoire est un gros problème. Pour le processeur, si vous utilisez un matériel plus ancien, chaque cœur de processeur fonctionne beaucoup plus lentement et il se peut qu’il n’y en ait pas assez. Pour les E / S, la lecture à partir de disques durs lents ainsi que des écritures excessives sur disque peuvent être le problème.

Il existe des outils que vous pouvez utiliser qui permettent de savoir facilement si un système est lié à la mémoire, au calcul (CPU) ou aux E / S. Tout ce dont tu as besoin c’est htop et iotop, deux outils semi-graphiques, qui peuvent être facilement installés sous Linux.

Installation de htop et iotop

Installation de htop et iotop

Pour installer htop et iotop sur votre distribution Linux basée sur Debian / Apt (comme Ubuntu et Mint), faites:

sudo apt install htop iotop

Pour installer htop et iotop sur votre distribution Linux basée sur RedHat / Yum (comme RedHat et Fedora), procédez comme suit:

sudo yum install htop iotop

CPU lié

Une sortie htop du système lié au processeur

Il est facile de voir si un système est lié au processeur ou non. Tapez simplement `htop` sur la ligne de commande et appuyez sur Entrée. Regardez ensuite les barres CPU colorées en haut de l’écran. Si votre processeur a 16 threads, il y aura 16 barres.

La question simple à laquelle il faut répondre est de savoir s’ils sont tous presque «  pleins  » (près de 100%) ou s’il y a suffisamment de place pour bouger:

Une sortie htop système non liée au processeur

Si les barres sont aussi bonnes que pleines, le système est clairement lié au processeur. Notez également que la mémoire (Mem) et les barres de swap (Swp) ne sont en aucun cas pleines: il ne s’agit pas d’un problème de performances lié à la mémoire.

Pour obtenir un peu plus d’informations et de tendances, vous pouvez ensuite consulter le nombre «Charge moyenne». Bien que ce nombre soit hautement arbitraire, un peu de familiarité avec votre système et la compréhension générale que si l’un de ces trois nombres dépasse le double du nombre de threads de votre système, le système a du mal à suivre le rythme ici.

Le premier nombre moyen de charge est une moyenne d’une minute, le suivant une moyenne de 5 minutes et le dernier nombre d’une moyenne de 15 minutes. Dans ce cas, la charge d’une minute est de 270, soit près de 17 fois le nombre de threads: notre système est fortement lié au processeur.

Enfin, un nombre intéressant à vérifier est le nombre de tâches (et dans une moindre mesure de threads). Alors que les marges d’eau basse et haute exactes dépendent des capacités du matériel / de la machine sous-jacente, si le nombre de tâches est excessivement élevé, votre CPU peut basculer fortement de contexte (passant du traitement d’une tâche à une autre).

Si vous souhaitez en savoir plus sur ce qu’indiquent les différentes couleurs dans htop, consultez Barres de couleurs dans htop – Que signifient-elles?

Mémoire lié

Immédiatement en accédant à htop, il est facile de voir si un système est lié à la mémoire ou non. Regardez simplement les barres de mémoire (Mem) et de swap (Swp) mentionnées précédemment.

Si la barre de mémoire est complètement pleine et que la barre de swap est par exemple remplie à 50%, le système échange presque certainement fortement. L’échange est le processus d’échange du contenu de la mémoire principale avec le disque (en utilisant un fichier d’échange spécial ou une partition Swap) car il est plein, et il est généralement très lent. Une fois qu’un système démarre et continue à permuter, il deviendra extrêmement lent.

Il est facile de voir quand vous commencez à manquer de mémoire, car la barre deviendra pleine. Cependant, l’utilisation de l’espace d’échange peut parfois être un peu ambiguë.

Par exemple, 20% peuvent être utilisés, mais il reste beaucoup de mémoire. Cela peut indiquer que le système d’exploitation a déplacé certaines zones de mémoire d’utilisation basse fréquence sur le disque afin d’optimiser la mémoire principale. Comme beaucoup de mémoire reste libre, cette situation est bonne et ne constitue pas une source de préoccupation.

Il existe également une exception à une barre de mémoire qui semble assez pleine, c’est la mise en cache. Votre système peut être configuré pour réserver x quantité de mémoire pour la mise en cache.

Une autre façon de vérifier rapidement cela consiste à exécuter free -g en ligne de commande (ou free -m pour les machines avec de plus petites quantités de mémoire comme un Raspberry Pi):

Sortie -g libre

C’est facile à lire: 62 gigaoctets de mémoire, 25 en cours d’utilisation, 12 libres et 24 actuellement affectés aux tampons et au cache. Le 32 disponible est un total approximatif de libre réel (12) et tout ce qui est affecté aux tampons et au cache (24) moins ce qui est déjà utilisé (non illustré), ou en d’autres termes 12 + 24 = 36 et 32 ​​est disponible, donc environ 4 gigaoctets sont utilisés par les tampons et la mise en cache.

Notez que nous pouvons également voir combien d’espace de swap a été réservé (10 gigaoctets) et combien est utilisé ici: 0 actuellement, et donc 10 gratuits.

I / O lié

Disons que vous vérifiez htop et voyez ceci:

Une sortie htop système non liée au processeur

Le système semble occupé, mais pas assez occupé être considéré comme lié au processeur. La mémoire utilisée / libre et les barres de swap semblent également correctes. Vérifions iotop ensuite. Pour ce faire, vous devez utiliser sudo iotop commencer iotop car iotop nécessite sudo.

Les deux barres du haut sont les plus utiles pour analyser rapidement si un système est aux prises avec le débit du disque et est donc lié aux E / S.

iotop montrant le débit actuel de lecture et d'écriture du disque

Bien que le nombre M / s ne soit pas très élevé en termes de SSD moderne, lire et écrire constamment plusieurs mégaoctets par seconde sur un disque dur lent est des E / S assez intenses!

Ce nombre, lorsqu’il est regardé pendant un petit moment, avec la liste de processus en dessous (pour voir qui sont les principaux utilisateurs), et la section supérieure de la sortie htop (en termes de CPU et de mémoire) donne une bonne idée générale pour savoir si un le système est lié à la mémoire, au processeur ou aux E / S.

Atténuer les problèmes de performances

Les changements de système nécessaires pour atténuer les problèmes de performances sont toujours spécifiques au système ainsi qu’à la situation spécifique rencontrée. Quelques exemples:

Le système est-il Liaison disque / E / S? Il peut être judicieux d’arrêter certains services de journalisation à écriture intensive, de mettre à niveau le système d’E / S (par exemple en ajoutant une carte SATA dans un ancien ordinateur), de passer à un périphérique de stockage plus rapide (comme un disque basé sur NVMe au lieu d’un HDD), ou simplement pour trouver un SSD plus rapide.

Le système est-il Mémoire / Swap lié? Il peut, par exemple, être judicieux d’exécuter moins de machines virtuelles, d’exécuter des processus moins gourmands en mémoire ou d’ajouter plus de modules de mémoire matériels physiques.

Le système est-il CPU lié? Utilisez la liste des processus du bas dans htop pour trouver le processus qui monopolise le processeur. Vous pouvez même le terminer directement depuis htop en utilisant la touche F9.

Si le problème vient du processeur lui-même (c’est-à-dire que le processeur ne suit clairement pas les tâches les plus élémentaires associées au système), le changement de matériel est un peu plus complexe. Il faut trouver un processeur plus rapide, toujours compatible avec le socket de la carte mère, et même dans ce cas, les améliorations de performances peuvent être faibles. Il est peut-être temps de mettre à niveau le système dans son ensemble.

Plus qu’un goulot d’étranglement de performance?

Pour en revenir à notre analogie avec la conduite d’eau, gardez à l’esprit que parfois un goulot d’étranglement peut être causé par une combinaison de divers composants.

Par exemple, si une carte contrôleur d’E / S ancienne ou bon marché nécessite 80% du temps CPU juste pour traiter les données, et que le disque qui lui est attaché est un disque dur lent qui est utilisé à 80% de ses capacités, même avec le débit du une carte d’E / S moins chère, les deux créent un problème global qui ne sera pas résolu non plus par l’adressage. Les deux devront être corrigés avant que le système redevienne performant.

Emballer

Que vous soyez un ingénieur DevOps ou un utilisateur Linux d’ordinateurs à domicile, savoir comment analyser rapidement si votre système est lié à la mémoire, au processeur ou aux E / S vous aidera à mettre en œuvre de meilleurs changements logiciels et matériels pour répondre au problème de performances rencontré!

★★★★★