Vérifier les statistiques de l'allocateur avec cat /proc/slabinfo
Dans cette étape, nous allons explorer comment vérifier les statistiques de l'allocateur à l'aide de la commande cat /proc/slabinfo
. Cette commande offre une vue détaillée de l'allocateur de slab du noyau (kernel slab allocator), qui est chargé de gérer efficacement la mémoire. Comprendre ces informations peut être utile pour déboguer les problèmes liés à la mémoire et optimiser les performances du système.
Tout d'abord, exécutons la commande :
cat /proc/slabinfo
Cette commande affichera une liste de caches de slab (slab caches), ainsi que leurs statistiques associées. La sortie peut sembler écrasante au premier abord, mais nous allons la décomposer.
Voici un exemple de ce que vous pourriez voir :
slabinfo - version: 2.1
kmem_cache 48 72 192 19 1 1
...
kmalloc-192 48 72 192 19 1 1
...
Chaque ligne représente un cache de slab. Les colonnes fournissent des informations sur le cache, telles que :
name
: Le nom du cache de slab.
<active_objs>
: Le nombre d'objets actifs dans le cache.
<num_objs>
: Le nombre total d'objets dans le cache.
<objsize>
: La taille de chaque objet en octets.
<objperslab>
: Le nombre d'objets par slab.
<pagesperslab>
: Le nombre de pages par slab.
<flags>
: Les indicateurs associés au cache.
Le kmem_cache
est un cache à usage général, tandis que kmalloc-192
est un cache pour les objets de taille 192 octets.
Pour rendre la sortie plus lisible, vous pouvez utiliser la commande less
:
cat /proc/slabinfo | less
Cela vous permet de parcourir la sortie page par page. Appuyez sur q
pour quitter less
.
Vous pouvez également utiliser grep
pour filtrer la sortie et vous concentrer sur des caches de slab spécifiques. Par exemple, pour trouver des informations sur le cache kmalloc-192
, vous pouvez utiliser la commande suivante :
cat /proc/slabinfo | grep kmalloc-192
Cela affichera uniquement les lignes contenant "kmalloc-192".
En examinant la sortie de cat /proc/slabinfo
, vous pouvez obtenir des informations sur la façon dont le noyau gère la mémoire et identifier les domaines potentiels d'optimisation.