Sachez combien un processus individuel ou l’ensemble du système consomme de CPU ou de mémoire.

En tant qu’administrateur système, vous êtes souvent confronté à un incident au cours duquel l’application est lente ou ne répond pas en raison d’une utilisation élevée de l’unité centrale, de la mémoire ou du réseau. Si le serveur n’héberge qu’un seul processus, il est facile de savoir quand ce processus consomme toutes les ressources. Cependant, imaginez un serveur partagé où plusieurs services sont en cours d’exécution, et vous devez déterminer lequel consomme toutes les ressources.

Il existe de nombreux logiciels de surveillance qui permettent d’effectuer cette tâche. Mais si vous n’en avez pas ou si vous cherchez une solution basée sur des commandes, alors voici. Ils sont tous GRATUITS !

haut de la page

Vous pouvez commencer par regarder top ou htop result pour avoir une vue d’ensemble des processus.

Comme vous pouvez le voir ci-dessous, cela donne une excellente idée de ce que tous les processus utilisent. Si vous regardez le premier, qui est MySQL, il prend 11,9 % du CPU et 2,5 % du CPU.

top - 11:57:33 up 0 min, 1 utilisateur, charge moyenne : 3.69, 0.96, 0.32
Tâches : 165 au total, 2 en cours, 113 en sommeil, 0 arrêté, 0 zombie
%Cpu(s) : 21.0 us, 5.5 sy, 0.0 ni, 70.5 id, 1.7 wa, 0.0 hi, 1.3 si, 0.0 st
KiB Mem : 7637308 total, 5802888 libre, 849512 utilisé, 984908 buff/cache
KiB Swap : 0 total, 0 libre, 0 utilisé.  6495648 Mem disponible 

  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND       
 1986 netdata 20 0 1738856 191560 22948 S 11.6 2.5 0:02.30 mysqld      
 3021 www-data 20 0 255288 78420 55484 S 6.6 1.0 0:01.55 php-fpm       
 3138 www-data 20 0 253096 79780 59228 S 6.6 1.0 0:00.92 php-fpm       
 3153 www-data 20 0 255116 79088 56472 S 5.0 1.0 0:00.70 php-fpm       
 3037 www-data 20 0 257200 81088 56216 S 4.3 1.1 0:01.50 php-fpm       
 3048 www-data 20 0 257088 78740 55380 S 4.3 1.0 0:01.46 php-fpm       
 3054 www-data 20 0 254160 72168 52108 S 3.7 0.9 0:01.32 php-fpm       
 3135 www-data 20 0 255084 75912 54836 S 3.7 1.0 0:00.91 php-fpm       
 3051 www-data 20 0 254096 73804 51964 S 3.0 1.0 0:01.38 php-fpm       
 2962 www-data 20 0 45280 7284 3488 R 2.0 0.1 0:00.22 openresty         
 1062 netdata 20 0 338748 76144 6720 S 1.0 1.0 0:01.31 netdata       
 1702 netdata 20 0 21852 4232 2352 S 1.0 0.1 0:00.34 apps.plugin           
 1729 netdata 20 0 18636 3280 2764 S 0.7 0.0 0:00.05 bash    
 1980 netdata 20 0 62008 12896 5796 S 0.7 0.2 0:00.14 redis-server            
   11 root 20 0 0 0 0 I 0.3 0.0 0:00.14 rcu_sched         
 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:00.92 dockerd       
 1857 root 20 0 10600 5564 4276 S 0.3 0.1 0:00.03 containerd-shim               
 2045 root 20 0 9948 6028 5016 S 0.3 0.1 0:00.14 forego      
 2934 root 20 0 13616 8760 5928 S 0.3 0.1 0:00.07 docker-gen          
 2966 systemd 20 0 25784 7924 2340 S 0.3 0.1 0:00.06 nginx

Le top est installé sur presque toutes les distributions Linux.

Une fois que vous avez identifié le suspect, vous pouvez vous concentrer sur ce processus au lieu de tout ce que vous avez vu ci-dessus. Vous pouvez toujours utiliser la commande top mais avec quelques arguments.

Supposons que vous connaissiez l’identifiant du processus (PID), vous pouvez utiliser la commande suivante.

top -p $PID

Voici un exemple de top -p 3102

top - 11:59:56 up 3 min, 1 utilisateur, charge moyenne : 0.72, 0.70, 0.31
Tâches :   1 total, 0 en cours, 1 en sommeil, 0 arrêté, 0 zombie
%Cpu(s) : 7.1 us, 2.9 sy, 0.0 ni, 89.1 id, 0.3 wa, 0.0 hi, 0.7 si, 0.0 st
KiB Mem : 7637308 total, 5802024 libre, 783672 utilisé, 1051612 buff/cache
KiB Swap : 0 total, 0 libre, 0 utilisé.  6555636 Mem disponible 

  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND       
 3102 www-data 20 0 329500 82376 60640 S 0.0 1.1 0:03.35 php-fpm

Vous pouvez également utiliser grep avec top. Vous trouverez ci-dessous un exemple de vérification de l’utilisation de Docker.

root@geekflare-com:~# top | grep docker
 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.38 dockerd       
 2934 root 20 0 14676 9652 5928 S 0.3 0.1 0:00.54 docker-gen          
 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.39 dockerd       
 1007 root 20 0 1347424 74524 38872 S 1.0 1.0 0:01.42 dockerd       
 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.55 docker-gen          
 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.56 docker-gen

htop

Similaire à top mais avec plus d’informations. Comme vous pouvez le voir, il y a la colonne command, qui est pratique pour identifier le chemin du processus. De plus, il est coloré.

htop n’est peut-être pas installé par défaut, mais vous pouvez toujours le faire comme ci-dessous.

Installez htop sur Ubuntu

apt-get install htop

Installez htop sur CentOS/RHEL 8.x

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf update
dnf install htop

regards

Comme son nom l’indique, vous obtenez une vue de l’utilisation du système sur un seul écran. Les processus en cours d’exécution sont triés en fonction de leur utilisation du processeur.

Vous pouvez installer glances sur CentOS 8 en utilisant DNF comme suit.

dnf install glances

pour CentOS7, vous pouvez utiliser YUM

yum install glances

au sommet

Une méthode similaire à celle décrite ci-dessus, mais avec une fonctionnalité géniale qui permet d’enregistrer la sortie dans un fichier afin que vous puissiez la consulter ultérieurement. Imaginez qu’il y ait une tendance à avoir un problème à un moment précis. Vous pouvez programmer l’écriture de la sortie dans un fichier via crontab ou autre, et plus tard vous pouvez la lire.

Pour enregistrer la sortie dans un fichier :

atop -w nom de fichier

et, pour lire :

atop -r nom de fichier

Il supporte de nombreux arguments comme l’intervalle, les échantillons, etc. et je vous recommande vivement de jeter un coup d’œil à la page de manuel.

Si vous êtes simplement intéressé par le dépannage en temps réel, exécutez atop et vous devriez voir ce qui suit.

Vous pouvez installer atop comme suit.

dnf install atop

ps

Vérifions maintenant la commande ps.

Vous pouvez utiliser la commande ps avec le PID pour afficher l’utilisation du CPU et de la mémoire.

ps -p $PID -o %cpu,%mem

La sortie devrait ressembler à ceci.

root@sr-master-us:~# ps -p 1048 -o %cpu,%mem
%CPU %MEM
 0.2 3.0
root@sr-master-us:~#

nmon

Outil interactif de surveillance en ligne de commande de l’utilisation du processeur, de la mémoire, des disques, du réseau, de NFS et de la mémoire virtuelle. Pour afficher le processus le plus important (en termes d’utilisation), vous pouvez exécuter nmon et appuyer sur le bouton t.

Vous pouvez installer nmon comme suit

dnf install nmon

Monit

Monit est une solution open-source basée sur le web et la ligne de commande pour surveiller les ressources du serveur, les démons, les fichiers, les répertoires, les systèmes de fichiers, etc.

Monit dispose également d’un widget sympa.

YouTube video

Il s’agit d’un logiciel de surveillance léger. Mais il y a plus à explorer ici.

Monitorix

Un utilitaire open-source léger pour surveiller le serveur Linux. Monitorix intègre le protocole HTTP, ce qui vous permet de vérifier l’utilisation et d’autres éléments sur le Web. Parmi les autres rapports d’utilisation, citons

  • Température du noyau
  • Système de fichiers et E/S
  • Trafic réseau
  • Apache/Mail/FTP/Nginx
  • MySQL/Varnish/Memcached

Monitorix propose également la configuration d’alertes afin que vous puissiez être notifié lorsque les choses ne vont pas bien. Il s’agit d’un bon choix si vous gérez des serveurs basés sur le cloud et que vous recherchez une solution de surveillance proactive.

Netdata

Netdata est un outil de surveillance en temps réel des performances des ressources système, des applications, des serveurs web, des bases de données, des DNS, de la messagerie, des capteurs matériels et de bien d’autres choses encore. Il s’agit d’un logiciel libre et la mise en route est facile. Toutes les données sont collectées, stockées et diffusées pour que vous puissiez les visualiser de manière interactive. Les données sont collectées toutes les secondes, de sorte que vous ne manquez jamais rien.

Apprécié par de nombreux leaders de l’industrie.

Alors, qu’attendez-vous pour essayer de prendre le contrôle de vos serveurs Linux ?

btop

btop est un moniteur de ressources pratique entièrement interactif avec une belle interface utilisateur qui vous aide à gérer les serveurs Linux.

btop: linux resource monitor

Vous pouvez facilement visualiser les processus dans une arborescence, filtrer à partir de la liste des processus et gérer les ressources inutiles. btop est également doté d’un graphique de mise à l’échelle automatique montrant l’utilisation du réseau.

Vous pouvez également vérifier la vitesse du disque et l’activité complète des entrées/sorties.

Vous pouvez en savoir plus sur Linux, FreeBSD et macOS.

Conclusion

J’espère que les outils ci-dessus vous aideront à visualiser l’utilisation du serveur en temps réel afin que vous puissiez prendre les mesures nécessaires. Si vous venez de débuter en tant qu’administrateur système et que vous souhaitez suivre une formation pratique, jetez un œil à ce cours Udemy.