Unix / Linux - Performance Système

Bonjour à tous, passionnés de technologie en herbe ! En tant qu'enseignant en informatique dans votre quartier, je suis ravi de vous guider à travers le monde fascinant de la performance des systèmes Unix/Linux. Ne vous inquiétez pas si vous êtes nouveau dans la programmation - nous allons commencer par les bases et progresser pas à pas.Alors, prenez une tasse de café (ou de thé, si c'est votre truc), et plongons dedans !

Unix / Linux - System Performance

Composants de Performance

Avant de commencer à bidouiller nos systèmes, il est crucial de comprendre ce qui compose la performance du système. Pensez à votre ordinateur comme un orchestre finement réglé - chaque composant joue un rôle vital dans la création d'une performance harmonieuse.

1. Utilisation du CPU

Le processeur central (CPU) est comme le chef d'orchestre de notre orchestre. Il est responsable de l'exécution des instructions et de la coordination de tous les autres composants. Lorsque nous parlons d'utilisation du CPU, nous nous référons à combien ce chef d'orchestre est occupé.

2. Utilisation de la Mémoire

La mémoire, ou RAM, est comme la partition musicale de notre orchestre. Elle stocke les données auxquelles le CPU a besoin d'accéder rapidement. Si nous épuisons la mémoire, notre performance peut ralentir considérablement.

3. E/S Disque

L'entrée/sortie disque (E/S) est comme le processus des musiciens qui prennent de nouveaux instruments ou partitions. Il implique la lecture ou l'écriture sur le disque dur, ce qui peut être une opération plus lente par rapport à l'accès à la RAM.

4. Performance Réseau

La performance réseau est similaire à la manière dont notre orchestre peut entendre les uns les autres et rester en phase. Elle implique la vitesse et l'efficacité du transfert de données sur le réseau.

Outils de Performance

Maintenant que nous comprenons les composants, examinons quelques outils que nous pouvons utiliser pour mesurer et améliorer la performance de notre système. J'aime les penser comme les instruments d'ajustement de notre orchestre.

1. Commande top

La commande top est comme un tableau de bord pour votre système. Elle fournit une vue en temps réel des processus en cours et des ressources système.

$ top

Cette commande affichera une liste mise à jour en continu des processus, triée par utilisation du CPU par défaut. Voici ce que vous verrez :

  • PID : Identifiant du processus
  • USER : Utilisateur propriétaire du processus
  • PR : Priorité
  • NI : Valeur de nice (affecte la priorité)
  • VIRT : Mémoire virtuelle utilisée
  • RES : Mémoire physique utilisée
  • SHR : Mémoire partagée
  • S : Statut du processus
  • %CPU : Utilisation du CPU
  • %MEM : Utilisation de la mémoire
  • TIME+ : Temps total CPU
  • COMMAND : Nom de la commande

2. Commande vmstat

La commande vmstat est comme un stéthoscope pour le cœur de votre système - elle rapporte des informations sur les processus, la mémoire, la pagination, les E/S de bloc, les appels et l'activité CPU.

$ vmstat 2 5

Cette commande affichera des statistiques système toutes les 2 secondes, pendant 5 itérations. La sortie inclut :

  • r : Nombre de processus en attente de temps d'exécution
  • b : Nombre de processus en sommeil non interruptible
  • swpd : Quantité de mémoire virtuelle utilisée
  • free : Quantité de mémoire inactive
  • buff : Quantité de mémoire utilisée comme tampons
  • cache : Quantité de mémoire utilisée comme cache
  • si : Quantité de mémoire échangée à partir du disque
  • so : Quantité de mémoire échangée vers le disque
  • bi : Blocs reçus d'un périphérique de bloc
  • bo : Blocs envoyés à un périphérique de bloc
  • in : Nombre d'interruptions par seconde
  • cs : Nombre de contextes de switch par seconde
  • us : Temps passé à exécuter du code non-kernel
  • sy : Temps passé à exécuter du code kernel
  • id : Temps passé inactif
  • wa : Temps passé en attente d'E/S

3. Commande iostat

La commande iostat est comme un tachymètre pour vos disques durs. Elle rapporte les statistiques CPU et les statistiques E/S pour les périphériques et les partitions.

$ iostat -x 2 5

Cette commande affichera des statistiques étendues toutes les 2 secondes, pendant 5 itérations. La sortie inclut :

  • Device : Nom du périphérique
  • rrqm/s : Demandes de lecture fusionnées par seconde
  • wrqm/s : Demandes d'écriture fusionnées par seconde
  • r/s : Lectures par seconde
  • w/s : Écritures par seconde
  • rkB/s : Kilooctets lus par seconde
  • wkB/s : Kilooctets écrits par seconde
  • avgrq-sz : Taille moyenne de la demande en secteurs
  • avgqu-sz : Longueur moyenne de la file d'attente
  • await : Temps moyen pour les demandes E/S
  • svctm : Temps moyen de service
  • %util : Pourcentage de temps CPU pendant lequel les demandes E/S étaient émises

4. Commande netstat

La commande netstat est comme un régulateur de trafic pour votre réseau. Elle affiche les connexions réseau, les tables de routage, les statistiques d'interface, les connexions de masquage et les adhésions multicast.

$ netstat -tuln

Cette commande affichera :

  • Les connexions Internet actives (TCP et UDP)
  • Les sockets en écoute
  • Les adresses et numéros de ports numériques

La sortie inclut :

  • Proto : Protocole (TCP ou UDP)
  • Recv-Q : Données mises en file pour réception
  • Send-Q : Données mises en file pour envoi
  • Local Address : Extrémité locale du socket
  • Foreign Address : Extrémité distante du socket
  • State : État du socket

5. Commande sar

La commande sar (System Activity Reporter) est comme un enregistreur de boîte noire pour votre système. Elle collecte, rapporte et sauvegarde les informations sur l'activité système.

$ sar -u 2 5

Cette commande affichera des statistiques d'utilisation CPU toutes les 2 secondes, pendant 5 itérations. La sortie inclut :

  • %user : Pourcentage d'utilisation CPU au niveau utilisateur
  • %nice : Pourcentage d'utilisation CPU au niveau utilisateur avec priorité nice
  • %system : Pourcentage d'utilisation CPU au niveau système
  • %iowait : Pourcentage de temps que le CPU était inactif pendant lequel le système avait une demande E/S en cours
  • %steal : Pourcentage de temps passé en attente involontaire par le CPU virtuel pendant que l'hyperviseur servait un autre processeur virtuel
  • %idle : Pourcentage de temps que le CPU était inactif et le système ne tenía pas une demande E/S en cours

Voici un tableau résumant ces outils de performance :

Commande Objectif Informations Clés
top Moniteur système en temps réel Liste des processus, utilisation CPU, utilisation mémoire
vmstat Statistiques de mémoire virtuelle Processus, mémoire, pagination, E/S, activité CPU
iostat Statistiques E/S Statistiques CPU, statistiques E/S du périphérique
netstat Statistiques réseau Connexions réseau, tables de routage, statistiques d'interface
sar Rapporteur d'activité système Utilisation CPU, utilisation mémoire, activité E/S, activité réseau

Souvenez-vous, devenir compétent avec ces outils est comme apprendre à jouer un instrument - cela nécessite de la pratique ! Ne soyez pas découragé si cela semble accablant au début. Commencez par un outil, comprenez pleinement sa sortie, puis passez au suivant.

Dans mes années d'enseignement, j'ai découvert que les étudiants qui expérimentent régulièrement ces outils sur leurs propres systèmes développeront une compréhension beaucoup plus profonde de la performance du système. C'est comme apprendre à entendre les instruments individuels dans un orchestre - soudain, vous pouvez exactement où les améliorations peuvent être apportées.

Alors, chers élèves, je vous encourage à allumer votre terminal et à commencer à explorer. Qui sait ? Vous pourriez devenir le prochain grand chef d'orchestre de la performance système !

Credits: Image by storyset