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

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

active_objs
    Количество активных (т. е., использующихся) в данный момент объектов.

num_objs
    Общее количество выделенных объектов (т. е., используемых и не используемых объектов).

objsize
    Размер объектов в этом кэше (slab), в байтах.

objperslab
    Количество объектов, хранящихся в каждом кэше (slab).

pagesperslab
    Количество страниц, выделенных для каждого кэша (slab).

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

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

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

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

limit
    Максимальное количество объектов, которые будут кэшироваться.

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

sharedfactor
    [Будет описано]

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

active_slabs
    Количество активных кэшей (slabs).

nums_slabs
    Общее количество активных кэшей (slabs).

sharedavail
    [Будет описано]

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

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)

The kernel source file Documentation/mm/slab.rst and tools/mm/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 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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