table of contents
- trixie 4.27.0-1
- trixie-backports 4.29.1-1~bpo13+1
- testing 4.29.1-1
- unstable 4.29.1-1
| 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
Поля статистики:
- 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
- Для многопроцессорных систем здесь задаётся количество объектов передаваемых одновременно, происходит наполнение списка доступных объектов.
- [Будет описано]
Записи slabdata в каждой строке имеют следующие поля:
- active_slabs
- Количество активных кэшей (slabs).
- nums_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.
СМОТРИТЕ ТАКЖЕ¶
Файл из дерева исходного кода ядра 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 |