Scroll to navigation

slabinfo(5) File Formats Manual slabinfo(5)

НАИМЕНОВАНИЕ

slabinfo - сводная таблица использования блоков кэша (slab) ядра

ОБЗОР

cat /proc/slabinfo

ОПИСАНИЕ

Часто используемые объекты в ядре Linux (заголовки буферов, иноды, элементы dentry и тп.) имеют свои собственные кэши. В файле /proc/slabinfo отражена статистика их работы. Пример (отредактированный) содержимого этого файла:

$ sudo cat /proc/slabinfo;
slabinfo - version: 2.1
# name    <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> ...
sigqueue      100  100  160   25  1 : tunables  0  0  0 : slabdata   4   4  0
sighand_cache 355   405 2112  15  8 : tunables  0  0  0 : slabdata  27  27  0
kmalloc-8192   96   96  8192   4  8 : tunables  0  0  0 : slabdata  24  24  0
...

В первой строке содержится номер версии, который позволяет приложению, читающему файл, определить формат файла (смотрите ВЕРСИИ ниже). В следующей строке перечисляются имена столбцов в оставшихся строках.

В каждой оставшейся строке выводится информация об определённом кэше. После имени данные каждого кэша делятся на три компонента:

статистика
регулировки (tunables)
slabdata

Поля статистики:

Количество активных (т. е., использующихся) в данный момент объектов.
Общее количество выделенных объектов (т. е., используемых и не используемых объектов).
Размер объектов в этом кэше (slab), в байтах.
Количество объектов, хранящихся в каждом кэше (slab).
Количество страниц, выделенных для каждого кэша (slab).

Элементы регулировок в каждой строке содержат подстроечные параметры соответствующего кэша. При использовании выделителя по умолчанию SLUB они отсутствуют, файл /proc/slabinfo недоступен для записи и в этих полях показываются значения 0. При использовании старого выделителя SLAB регулировки определённого кэша можно изменять посредством записи строк в формате /proc/slabinfo:


# echo 'name limit batchcount sharedfactor' > /proc/slabinfo;

Здесь name — имя кэша, limit, batchcount и sharedfactor — целые числа, задающие новые значения соответствующих регулировок. Значение limit должно быть положительным, batchcount должно быть положительным числом меньшим или равным limit, а sharedfactor должно быть неотрицательным. Если одно из значений некорректно, то настройки кэша не изменяются.

Записи регулировок в каждой строке имеют следующие поля:

Максимальное количество объектов, которые будут кэшироваться.
Для многопроцессорных систем здесь задаётся количество объектов передаваемых одновременно, происходит наполнение списка доступных объектов.
[Будет описано]

Записи slabdata в каждой строке имеют следующие поля:

Количество активных кэшей (slabs).
Общее количество активных кэшей (slabs).
[Будет описано]

Заметим, что из-за выравнивания объектов и заголовков блоков кэша объекты обычно не упакованы ровно по страницам. Страницы даже с единственным используемым объектом уже сами считаются используемыми и не могут быть высвобождены.

Kernels configured with CONFIG_DEBUG_SLAB will also have additional statistics fields in each line, and the first line of the file will contain the string "(statistics)". The statistics field include: the high water mark of active objects; the number of times objects have been allocated; the number of times the cache has grown (new pages added to this cache); the number of times the cache has been reaped (unused pages removed from this cache); and the number of times there was an error allocating new pages to this cache.

ВЕРСИИ

Фай /proc/slabinfo впервые появился в Linux 2.1.23. Файл содержит номер версии, которых было создано несколько с разными форматами:

1.0
В ядрах Linux 2.2.x.
1.1
В ядрах Linux 2.4.x.
1.2
Формат, существовавший короткое время в разрабатываемых версиях Linux 2.5.
2.0
В ядрах Linux 2.6.x по Linux 2.6.9, включительно.
2.1
Текущий формат, появился в Linux 2.6.10.

ПРИМЕЧАНИЯ

Только суперпользователь может читать и (если ядро собрано с CONFIG_SLAB) изменять файл /proc/slabinfo.

Общее количество памяти, выделенное под кэш SLAB/SLUB, показано в поле Slab файла /proc/meminfo.

СМОТРИТЕ ТАКЖЕ

slabtop(1)

Файл из дерева исходного кода ядра Documentation/vm/slub.txt и tools/vm/slabinfo.c.

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.

21 сентября 2025 г. Справочные страницы Linux 6.16