GNU/Linux >> Tutoriels Linux >  >> Linux

Conseils pour le haut :surveiller la charge du processeur sous Linux

Cet article est extrait du chapitre 13 du livre Linux en action, publié par Manning.

Les performances de votre machine Linux ont-elles été irrégulières ou anormalement lentes ? Pensez-vous que la demande croissante pourrait dépasser vos ressources disponibles ? Voici quelques questions que vous devriez vous poser :

  • Dans quelle mesure êtes-vous proche d'épuiser vos ressources de processeur et de mémoire ?
  • Y a-t-il quelque chose qui fonctionne inutilement et qui pourrait être arrêté ?
  • Y a-t-il quelque chose qui tourne mal à votre insu ?

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Où chercher des réponses ? Le haut programme est un excellent point de départ. Il peut vous donner un aperçu riche et auto-actualisé des processus en cours d'exécution sur votre système.

La figure ci-dessous montre un écran typique de top Les données. La première ligne indique l'heure actuelle, le temps écoulé depuis le dernier démarrage du système, le nombre d'utilisateurs actuellement connectés et les moyennes de charge pour la dernière minute, cinq minutes et 15 minutes. Ces informations peuvent également être renvoyées en exécutant uptime .

Puisque nous essayons de résoudre des problèmes de performances, les colonnes de données qui devraient nous intéresser le plus sont %CPU (pourcentage de la capacité CPU actuellement utilisée par un processus donné) et %MEM (pourcentage de la capacité mémoire). Vous voudrez particulièrement noter les processus apparaissant en haut de la liste.

Dans ce cas, vous pouvez voir que le démon MySQL utilise 4,3 % du processeur du serveur et, à partir de la colonne suivante, 13 % de sa mémoire. Si vous suivez cette ligne vers la gauche, vous verrez que l'ID de processus (PID) est 1367 et le processus est "possédé" par le mysql utilisateur.

Peut-être en conclurez-vous que ce processus prenait plus de ressources que ce qui peut être justifié et qu'il devra être sacrifié (pour le plus grand bien, vous comprenez). Ce top l'affichage vous a donné tout ce dont vous aurez besoin pour le tuer. Étant donné que MySQL est un service géré par systemd (sur les distributions utilisant systemd), votre premier choix devrait être d'utiliser systemctl pour ralentir le processus en douceur sans mettre en danger les données de l'application.

systemctl stop mysqld

Si le processus que vous souhaitez arrêter n'est pas géré par systemd, ou si quelque chose ne va pas et systemctl n'a pas réussi à l'arrêter, alors vous pouvez utiliser soit kill ou killall pour éliminer votre processus. Certains systèmes nécessitent que vous installiez killall dans le cadre du psmisc emballer. Vous passez le PID à kill de cette façon :

kill 1367

killall , en revanche, utilise le nom du processus plutôt que son ID.

killall mysqld

Tuer ou tout tuer, telle est la question . En fait, la réponse est assez évidente. kill arrêtera un seul processus, basé sur le PID, tandis que killall tuera autant d'instances d'un programme particulier qu'il est en cours d'exécution. Donc, s'il y avait deux ou trois instances MySQL distinctes, appartenant peut-être à des utilisateurs distincts, tout serait arrêté. Avant de lancer killall , assurez-vous qu'il n'y a pas de processus portant le même nom que vous souhaitez exécuter et qui pourraient devenir des "dommages collatéraux".

Bien sûr, vous devrez également exécuter systemctl disable pour vous assurer que le processus ne redémarre pas au prochain démarrage.

systemctl disable mysqld

Décryptage haut

Au cas où vous en auriez besoin, la troisième ligne de top la sortie que vous avez vue un peu plus tôt nous donne des valeurs de temps (en pourcentage) pour un certain nombre d'autres métriques CPU. Voici un bref aperçu du méli-mélo d'acronymes que vous y trouverez :

Métrique Signification
us Temps d'exécution des processus de haute priorité (non-niced)
sy Temps d'exécution des processus du noyau
ni Temps d'exécution de processus de faible priorité (agréables)
id Temps passé au ralenti
wa Temps d'attente pour que les événements d'E/S se terminent
hi Temps passé à gérer les interruptions matérielles
si Temps passé à gérer les interruptions logicielles
st Temps volé à cette VM par son hyperviseur (hôte)

Le top l'affichage peut être personnalisé en temps réel grâce à la saisie au clavier. Tapez h pour en savoir plus.

Créer des problèmes (simuler la charge du processeur)

Mourir d'envie de voir top en action mais, ne le sauriez-vous pas, tout se passe bien ?

Pourquoi ne pas simuler une surcharge CPU de niveau crise ? Tout comme les enfants, yes émettra du bruit (numérique) en continu jusqu'à ce qu'on lui dise d'arrêter. À la réflexion, ce n'est pas du tout comme les enfants.

Cette commande redirigera ce bruit vers le jetable /dev/null fichier et le & Le personnage poussera le processus en arrière-plan, vous redonnant le contrôle de la ligne de commande. Pour augmenter la pression, lancez la commande plusieurs fois.

$ yes > /dev/null &

Ça devrait les occuper. Pendant que tout cela tourne, regardez top pour voir ce qui se passe. Vous pouvez également essayer d'exécuter d'autres applications pour voir combien il faudra pour les ralentir. Lorsque vous avez terminé, exécutez killall pour faire tomber tous vos yes sessions en une seule fois.

$ killall yes


Linux
  1. 3 conseils pour imprimer avec Linux

  2. Comment limiter l'utilisation du processeur d'un processus sous Linux

  3. 8 conseils pour une automatisation fiable du système Linux

  4. Conseils de ligne de commande Linux pour augmenter la productivité

  5. Comment installer et configurer Monit sur Linux pour la surveillance des processus

Linux top Command Tutoriel pour les débutants (8 exemples)

30 meilleurs exemples de commandes pour la surveillance sous Linux

3 astuces pour améliorer les performances des processus Linux avec priorité et affinité

Surveillance des processus sous Linux

Présentation de la surveillance et du réglage des performances Linux

UNIX / Linux :7 exemples pratiques de commandes PS pour la surveillance des processus