Les processeurs et les cartes graphiques : mpstat, lscpu, gpustat, etc.
I. Les processeurs
Parmi les commandes permettant d’afficher des statistiques concernant les processeurs, on peut compter sur des outils classiques tels que :
- mpstat
- powertop
- top
- htop
- ps
- pidstat
Exemple : émettre cinq rapports sur l’ensemble des processeurs à 2s d’intervalle :
# mpstat -P ALL 2 5
Bien évidemment, le fait d’utiliser htop ou top est encore plus simple, car cela permet de faire apparaître rapidement les différents processus attachés à un processeur spécifique :
REMARQUE : il est tout à fait possible d’utiliser le formalisme de tiptop ou encore celui de perf, mentionné précédemment, si on préfère celui-ci à la commande top.
Ceci dit, la commande la plus pratique à utiliser, permettant de mettre en avant la surconsommation d’un processeur en particulier est pidstat. Ainsi, il est possible de visualiser le pourcentage d’utilisation de la tâche, mais également sur quel processeur celle-ci s’exécute, comme le montre la capture suivante :
RAPPEL : certaines informations peuvent être consultées directement depuis les fichiers placés dans l’arborescence /proc/stat ou /proc/cpuinfo. D’ailleurs, en utilisant les instructions lseek ou pread, on peut accéder au périphérique cpuid, fournissant une interface permettant de collecter les informations concernant un CPU x86 en particulier au travers d’un module du noyau linux.
En installant le package util-linux, on peut ainsi accéder à la commande lscpu collectant l’ensemble des informations depuis /sys et /proc/cpuinfo. On peut alors accéder à l’affichage des renseignements concernant l’architecture du ou des processeurs.
Il existe également trois commandes dont on a déjà mentionné l’existence précédemment :
- numactl
- numastat
- turbostat
REMARQUE : un autre outil a été également mis au point pour lire les informations contenues dans les registres des processeurs. Il s’agit de la commande rdmsr. On parle alors de Machine Specific Registers abrégé en MSR.
Par ailleurs, à ce niveau on retrouve aussi certaines fonctions eBPF telles que llcstat permettant de capitaliser les références du cache des processeurs.
II. Les cartes graphiques
En ce qui concerne les cartes graphiques, on trouve un certain nombre d’outils dédiés aux cartes graphiques de type NVidia. De façon générale, on peut utiliser la suite de commandes intel_gpu* pour récupérer les indicateurs de performance concernant les équipements ou les cartes graphiques autres que NVidia :
- intel_gpu_top
- intel_gpu_time
- intel_gpu_frequency
REMARQUE : pour ce qui est des cartes NVidia, le constructeur met à disposition une série de commandes telles que nvidia-smi ou encore un script python appelé gpustat disponible sur Github.
Exemple : affichage du résultat de la commande nvidia-smi :
On peut ainsi récupérer le type de processeur graphique utilisé, le nombre de cœurs ainsi que les performances avérées et les processus en cours d’exécution. On constate que l’on dispose aussi de la version du firmware NVidia installé.