Kernel è un po 'improprio. Il kernel di Linux è composto da diversi processi / thread + i moduli ( lsmod
), quindi per avere un quadro completo dovrai guardare l'intera sfera e non solo un singolo componente.
Per inciso i miei spettacoli slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
La pagina man per slabtop
aveva anche questo da dire:
L'intestazione statistica slabtop sta monitorando quanti byte di lastre vengono utilizzati e non è una misura della memoria fisica. Il campo 'Slab' nel file / proc / meminfo tiene traccia delle informazioni sulla memoria fisica del solaio utilizzata.
Eliminare le cache
Far cadere la mia cache come suggerito da @derobert nei commenti sotto la tua domanda fa quanto segue per me:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
L'invio di un 3 procede come segue: pagecache, dentries e inode gratuiti. Ne discuterò di più in questo U&L Domande e risposte intitolato: Esistono modi o strumenti per scaricare la memoria cache e il buffer? ". Quindi 110 MB del mio spazio venivano utilizzati semplicemente mantenendo le informazioni riguardanti pagecache, dentries e inode.
Informazioni aggiuntive
Quindi quanta RAM sta usando il mio kernel?
Questa foto è un po 'più nebulosa per me, ma ecco le cose che "penso" sappiamo.
Lastra
Possiamo ottenere un'istantanea dell'uso della lastra usando questa tecnica. In sostanza possiamo estrarre queste informazioni /proc/meminfo
.
$ grep Slab /proc/meminfo
Slab: 100728 kB
moduli
Inoltre possiamo ottenere un valore di dimensione per i moduli del kernel (non è chiaro se sia la loro dimensione dal disco o quando nella RAM) estraendo questi valori da /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
Gran parte dei dettagli su SLAB sono accessibili in questa struttura di 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
All'avvio del sistema è presente una riga che riporta l'utilizzo della memoria del kernel Linux subito dopo il suo caricamento.
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
Riferimenti