Kernel ist ein bisschen eine Fehlbezeichnung. Der Linux-Kernel besteht aus mehreren Prozessen / Threads + den Modulen ( lsmod
). Um ein vollständiges Bild zu erhalten, muss man den gesamten Ball betrachten und nicht nur eine einzelne Komponente.
Übrigens zeigt mir slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
Die Manpage für hatte slabtop
auch folgendes zu sagen:
Der Slabtop-Statistikheader verfolgt, wie viele Bytes von Slabs verwendet werden, und ist kein Maß für den physischen Speicher. Das Feld 'Platte' in der Datei / proc / meminfo enthält Informationen zum verwendeten physischen Plattenspeicher.
Löschen von Caches
Meine Caches als Dropping @derobert vorgeschlagen in den Kommentaren unter Ihrer Frage tut die folgende für mich:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
Das Senden einer 3 bewirkt Folgendes: Freier Pagecache, Einträge und Inodes. Ich diskutiere dies mehr in dieser U & L-Frage & Antwort mit dem Titel: Gibt es Möglichkeiten oder Werkzeuge, um den Speichercache und den Puffer zu sichern? Msgstr "" "110 MB meines Speicherplatzes wurden verwendet, indem nur die Informationen zu Pagecache, Einträgen und Inodes gepflegt wurden.
zusätzliche Information
- Wenn Sie interessiert sind, habe ich diesen Blog-Beitrag gefunden,
slabtop
in dem etwas mehr Details besprochen werden . Es heißt: Linux-Befehl des Tages: slabtop .
- Der Platten-Cache wird hier auf Wikipedia unter dem Titel " Plattenzuordnung" ausführlicher beschrieben .
Wie viel RAM verbraucht mein Kernel?
Dieses Bild ist ein bisschen nebliger für mich, aber hier sind die Dinge, von denen ich denke, dass wir sie kennen.
Platte
Mit dieser Technik können wir eine Momentaufnahme der Verwendung von Slab erstellen. Grundsätzlich können wir diese Informationen herausholen /proc/meminfo
.
$ grep Slab /proc/meminfo
Slab: 100728 kB
Module
Außerdem können wir einen Größenwert für Kernel-Module ermitteln (unklar, ob es sich um die Größe auf der Festplatte oder im RAM handelt), indem wir diese Werte aus /proc/modules
folgenden Quellen abrufen :
$ awk '{print $1 " " $2 }' /proc/modules | head -5
cpufreq_powersave 1154
tcp_lp 2111
aesni_intel 12131
cryptd 7111
aes_x86_64 7758
Slabinfo
Viele Details zum SLAB sind in dieser Proc-Struktur verfügbar /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
Wenn Ihr System hochfährt, gibt es eine Zeile, die die Speichernutzung des Linux-Kernels direkt nach dem Laden meldet.
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
Verweise