Kernel é um pouco impróprio. O kernel do Linux é composto por vários processos / threads + os módulos ( lsmod
), para obter uma imagem completa, você precisa olhar a bola toda e não apenas um componente.
Aliás, meus shows slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
A página do manual slabtop
também tinha o seguinte a dizer:
O cabeçalho estatístico do slabtop está rastreando quantos bytes de lajes estão sendo usados e não uma medida de memória física. O campo 'Laje' no arquivo / proc / meminfo está rastreando informações sobre a memória física de laje usada.
Eliminando caches
Descartar meus caches como @derobert sugerido nos comentários da sua pergunta faz o seguinte:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
O envio de um 3 faz o seguinte: pagecache gratuito, dentries e inodes. Discuto isso mais nesta seção de perguntas e respostas da U&L intitulada: Existem maneiras ou ferramentas para despejar o cache e o buffer de memória? ". Portanto, 110 MB do meu espaço estavam sendo usados apenas mantendo as informações sobre pagecache, dentries e inodes.
informação adicional
Então, quanta RAM meu Kernel está usando?
Essa foto é um pouco mais nebulosa para mim, mas aqui estão as coisas que eu "acho" que sabemos.
Laje
Podemos obter um instantâneo do uso do Slab usando esta técnica. Basicamente, podemos extrair essas informações /proc/meminfo
.
$ grep Slab /proc/meminfo
Slab: 100728 kB
Módulos
Também podemos obter um valor de tamanho para os módulos do Kernel (não está claro se é o tamanho deles no disco ou na RAM) puxando esses valores 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
Muitos dos detalhes sobre o SLAB estão acessíveis nesta estrutura 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
Quando o sistema é inicializado, há uma linha que relata o uso de memória do kernel Linux logo após o carregamento.
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
Referências