Le noyau est un peu impropre. Le noyau Linux est composé de plusieurs processus / threads + les modules ( lsmod
). Ainsi, pour obtenir une image complète, vous devez examiner la totalité de la balle et non pas un seul composant.
Incidemment, le mien montre slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
La page de manuel pour slabtop
aussi avait ceci à dire:
L'en-tête statistique slabtop suit le nombre d'octets de dalles utilisés et non une mesure de la mémoire physique. Le champ "Slab" dans le fichier / proc / meminfo contient des informations de suivi sur la mémoire physique de la dalle utilisée.
Déposer des caches
Si je laisse tomber mes caches, comme @derobert l’a suggéré dans les commentaires sous votre question, a pour moi les avantages suivants:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
L'envoi d'un 3 a les conséquences suivantes: pagecache, dentries et inodes gratuits. Je discute davantage de cela dans ce Q & A intitulé: existe-t-il des moyens ou des outils pour vider le cache mémoire et la mémoire tampon? ". Ainsi, 110 Mo de mon espace étaient utilisés simplement en maintenant les informations concernant pagecache, dentries et inodes.
Information additionnelle
Alors, combien de RAM mon noyau utilise-t-il?
Cette image est un peu plus floue pour moi, mais voici les choses que je "pense" que nous savons.
Dalle
Nous pouvons obtenir un instantané de l'utilisation de la dalle en utilisant cette technique. Essentiellement, nous pouvons extraire cette information /proc/meminfo
.
$ grep Slab /proc/meminfo
Slab: 100728 kB
Modules
Nous pouvons également obtenir une valeur de taille pour les modules du noyau (indiquez s'il s'agit de leur taille sur le disque ou en RAM) en extrayant ces valeurs de /proc/modules
:
$ awk '{print $1 " " $2 }' /proc/modules | head -5
cpufreq_powersave 1154
tcp_lp 2111
aesni_intel 12131
cryptd 7111
aes_x86_64 7758
Slabinfo
Une grande partie des détails sur le SLAB sont accessibles dans cette structure de proc /proc/slabinfo
:
$ less /proc/slabinfo | head -5
slabinfo - version: 2.1
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
nf_conntrack_ffff8801f2b30000 0 0 320 25 2 : tunables 0 0 0 : slabdata 0 0 0
fuse_request 100 125 632 25 4 : tunables 0 0 0 : slabdata 5 5 0
fuse_inode 21 21 768 21 4 : tunables 0 0 0 : slabdata 1 1 0
Dmesg
Lorsque votre système démarre, une ligne indique l'utilisation de la mémoire du noyau Linux juste après son chargement.
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
Références