15/11/2024

La mémoire : numactl, lstopo, perf, etc.

Intéressons-nous maintenant à la mémoire. Afin de lister les informations propres à la mémoire, on peut interroger la commande numactl (issue du package éponyme) :

# numactl -H

On peut aussi noter qu’il existe également une commande numastat permettant de lister les statistiques de la mémoire utilisée par les processus et le système en général.

Exemple : récupérer les statistiques mémoire pour l’utilisation de la bibliothèque libvirt :

# numastat -czs libvirt

Afin de lister la topologie du système, on peut utiliser l’une des deux commandes suivantes, liées aux commandes hwloc :

  • lstopo
  • lstopo-no-graphics

Exemple : lister la topologie complète du système :

# lstopo -s

RAPPEL : afin de comptabiliser la capacité mémoire d’un serveur, on put également le faire via la commande dmidecode suivante :

# dmidecode –t 17|grep Size|awk '{{t+=$2}} END {{t=t/1024}print t" GB "}'

Certains outils ont également été développés dans l’optique de récupérer l’ensemble des métadonnées du matériel ainsi que les performances du système concerné.

C’est le cas de l’utilitaire écrit par des chercheurs de l’INRIA appelé tiptop. Ce dernier nécessite d’être utilisé sur une distribution avec un noyau minimum en 2.6.31 et de disposer des bibliothèques libcurses et libxml2. Il suffit simplement de télécharger le fichier tarball tiptop*.tar.gz le plus récent, de le décompresser pour l’utiliser.

REMARQUE : cet utilitaire ne nécessite aucun privilège root particulier, ni de patch ou de module noyau spécifique à charger sur le système d’exploitation.

Cet utilitaire est aussi pratique et visuel que la commande top. Mais, il est dédié au matériel sous-jacent d’un serveur.

ATTENTION : l’utilitaire tiptop semble ne pas fonctionner correctement dans un environnement virtualisé. Il peut alors avoir des comportements anormaux.

Dans le même genre de famille d’outils, on trouve aussi l’outil perf, qui s’oriente plus vers du profiling, en faisant abstraction des différences entre processeurs pour les différents équipements. Cela permet de fournir une interface en ligne de commande tout à fait fonctionnelle :

# perf list

Exemple : mesurer les performances mémoire du noyau :

# perf kmem

Mentionnons qu’il existe aussi une option report, permettant de constituer des rapports détaillés d’évaluation, favorisant les benchmarks :

# perf report

# Events: 1K cycles
#
# Overhead          Command                   Shared Object  Symbol
# ........  ...............  ..............................  .....................................
#
    28.15%      firefox-bin  libxul.so                       [.] 0xd10b45
     4.45%          swapper  [kernel.kallsyms]               [k] mwait_idle_with_hints
     4.26%          swapper  [kernel.kallsyms]               [k] read_hpet
     2.13%      firefox-bin  firefox-bin                     [.] 0x1e3d
     1.40%  unity-panel-ser  libglib-2.0.so.0.2800.6         [.] 0x886f1
author avatar
Philippe PIERRE
A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail