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