Ядро немного неправильное. Ядро Linux состоит из нескольких процедур / потоков + модулей ( lsmod
), поэтому, чтобы получить полную картину, вам нужно рассмотреть весь шар, а не только один компонент.
Кстати мои шоу slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
На странице руководства slabtop
также было сказано следующее:
Заголовок статистики slabtop отслеживает, сколько байтов slabs используется, и это не показатель физической памяти. Поле 'Slab' в файле / proc / meminfo отслеживает информацию об используемой физической памяти плиты.
Сброс кешей
Удаление моих кешей, как предложил @derobert в комментариях к вашему вопросу, делает для меня следующее:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
Отправка 3 делает следующее: бесплатный pagecache, dentries и inode. Я обсуждаю это больше в этом разделе вопросов и ответов под названием: Существуют ли какие-либо способы или инструменты для сброса кэша и буфера памяти? ". Таким образом, 110 МБ моего пространства использовалось, просто поддерживая информацию, касающуюся кэша страниц, дентриев и инодов.
Дополнительная информация
- Если вам интересно, я нашел этот пост в блоге, который обсуждает
slabtop
немного больше деталей. Это называется: Linux-команда дня: slabtop .
- Кэш плиты более подробно обсуждается здесь, в Википедии, под названием: Распределение плиты .
Так сколько оперативной памяти использует мое ядро?
Эта картина немного более туманная для меня, но вот то, что я «думаю», мы знаем.
горбыль
Мы можем получить снимок использования Slab, используя эту технику. По сути, мы можем извлечь эту информацию из /proc/meminfo
.
$ grep Slab /proc/meminfo
Slab: 100728 kB
Модули
Также мы можем получить значение размера для модулей ядра (неясно, является ли их размер на диске или в оперативной памяти), извлекая эти значения из /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
Большая часть деталей о SLAB доступна в этой структуре процедур /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
Когда ваша система загружается, появляется строка, которая сообщает об использовании памяти ядром Linux сразу после его загрузки.
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
Рекомендации