Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

slab_info

box.slab.info()

Выводит сводный отчет об использовании памяти в байтах для аллокатора slab. Этот отчет полезен для оценки рисков нехватки памяти.

box.slab.info выдает несколько коэффициентов:

  • items_used_ratio
  • arena_used_ratio
  • quota_used_ratio

При мониторинге используемой памяти в memtx есть два возможных сценария:

Случай 1: 0.5 < items_used_ratio < 0.9

image

Очевидно, память сильно фрагментирована. Проверьте, сколько у вас классов slab, посмотрев box.slab.stats() и посчитав количество разных классов. Если классов slab много (больше нескольких десятков), память может закончиться, даже если уровень использования памяти невысок. Хотя в каждом slab может использоваться мало элементов, при выделении кортежа с размером, отличным от размера любого существующего класса slab, Tarantool может запросить новый slab из арены slab, а поскольку в арене осталось мало пустых slab'ов, она попытается увеличить использование квоты, что в итоге может привести к ошибке нехватки памяти из-за низкой оставшейся квоты.

Случай 2: items_used_ratio > 0.9

image

Память заканчивается. Все индикаторы использования памяти высоки. Память не фрагментирована, но на каждом уровне аллокатора slab осталось мало резервов. Стоит рассмотреть увеличение лимита памяти Tarantool (box.cfg.memtx_memory).

Резюмируя: основной индикатор нехватки памяти — quota_used_ratio. Однако существует множество совершенно стабильных конфигураций с высоким quota_used_ratio, поэтому обращать на него внимание нужно только тогда, когда высоки и коэффициенты использования арены, и элементов.

Возвращает

none

  • quota_size — лимит памяти для аллокатора slab (настраивается в параметре memtx_memory, по умолчанию 2^28 байт = 268 435 456 байт)
  • quota_used — используется аллокатором slab
  • items_size — выделено только для кортежей
  • items_used — используется только для кортежей
  • arena_size — выделено для кортежей и индексов
  • arena_used — используется для кортежей и индексов
  • items_used_ratio = items_used / items_size
  • quota_used_ratio = quota_used / quota_size
  • arena_used_ratio = arena_used / arena_size

Тип возвращаемого значения

table

Пример:

tarantool> box.slab.info()---- items_size: 228128  items_used_ratio: 1.8%  quota_size: 1073741824  quota_used_ratio: 0.8%  arena_used_ratio: 43.2%  items_used: 4208  quota_used: 8388608  arena_size: 2325176  arena_used: 1003632...tarantool> box.slab.info().arena_used---- 1003632...