slab_info
Выводит сводный отчет об использовании памяти в байтах для аллокатора slab. Этот отчет полезен для оценки рисков нехватки памяти.
box.slab.info выдает несколько коэффициентов:
- items_used_ratio
- arena_used_ratio
- quota_used_ratio
При мониторинге используемой памяти в memtx есть два возможных сценария:
Случай 1: 0.5 < items_used_ratio < 0.9
Очевидно, память сильно фрагментирована. Проверьте, сколько у вас
классов slab, посмотрев box.slab.stats() и посчитав количество разных
классов. Если классов slab много (больше нескольких десятков), память
может закончиться, даже если уровень использования памяти невысок. Хотя
в каждом slab может использоваться мало элементов, при выделении кортежа
с размером, отличным от размера любого существующего класса slab,
Tarantool может запросить новый slab из арены slab, а поскольку в арене
осталось мало пустых slab'ов, она попытается увеличить использование
квоты, что в итоге может привести к ошибке нехватки памяти из-за низкой
оставшейся квоты.
Случай 2: items_used_ratio > 0.9
Память заканчивается. Все индикаторы использования памяти высоки. Память
не фрагментирована, но на каждом уровне аллокатора 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— используется аллокатором slabitems_size— выделено только для кортежейitems_used— используется только для кортежейarena_size— выделено для кортежей и индексовarena_used— используется для кортежей и индексовitems_used_ratio=items_used/items_sizequota_used_ratio=quota_used/quota_sizearena_used_ratio=arena_used/arena_size
Тип возвращаемого значения
table
Пример:
tarantool> box.slab.info()---- items_size: 228128items_used_ratio: 1.8%quota_size: 1073741824quota_used_ratio: 0.8%arena_used_ratio: 43.2%items_used: 4208quota_used: 8388608arena_size: 2325176arena_used: 1003632...tarantool> box.slab.info().arena_used---- 1003632...