Skip to content

Document box.slab.info(): items = tuples, arena = tuples + indexes, quota = pure quota #84

Closed
@kostja

Description

@kostja

Konstantin [07.10.16 15:41]
при старте память не размечена. то есть, сделан mmap, зарезервировано адресное пространство. Потом память юзается, из квоты берутся куски по 4 МБ (slab size). Если память освобождается - куски могут вернуться в квоту, но не обязательно (фрагментация)

Roman [07.10.16 15:42]
[In reply to Anatoly]
ага, для этого популярные теги нужно в описание группы добавить

Konstantin [07.10.16 15:42]
quota_used таким образом говорит нам о том, сколько памяти мы израсходовали с точки зрения использования квоты.

Konstantin [07.10.16 15:42]
далее, потребителями квоты являются таплы и индексы. Всё вместе - таплы и индексы - называется ареной 😊

Konstantin [07.10.16 15:43]
соотв. arena_size = это сколько мы отожрали на таплы и индексы в виде их слабов.

Konstantin [07.10.16 15:43]
а arena_used = это сколько мы соотв. реально юзаем памяти под что-то полезное

Konstantin [07.10.16 15:44]
далее, ещё есть items - это сколько памяти мы выжрали конкретно под данные.

Konstantin [07.10.16 15:44]
не включая индексы.

Konstantin [07.10.16 15:44]
теперь, люди задают вопрос, как мне понять что память кончилась?

Konstantin [07.10.16 15:44]
в связи с тем, что система подвержена фрагментации, мониторить надо более-менее всё.

Konstantin [07.10.16 15:45]
то есть признак конца = и arena_used_ratio и quota_used_ratio в 90-95%
Если есть ещё много свободной квоты, то то, что арена хорошо используется - признак низкой фрагментация, т.е. само по себе arena_used_ratio и items_used_ratio высокие не страшно.
Как в целом не страшно и если quota_used_ratio под сотку, а arena_used_ratio 50-60% - но может бомбануть из-за фрагментации, т.е. это признак высокой фрагментации.

Konstantin [07.10.16 15:45]
т.к. может кончиться память в квоте из-за того что их выжрали данные, и из-за этого не будет слаба под кусок индекса.
а может быть так что все слабы распределены под таплы, но полупустые.

Oleg [07.10.16 15:45]
а все ratio - это отношение чего к чему?

Konstantin Osipov, [07.10.16 15:45]
used к size

Oleg [07.10.16 15:47]
quota_used: 8388608
arena_used_ratio: 0.8%
items_used_ratio: 2.0%
arena_size: 2341456
quota_size: 1073741824
arena_used: 1102592

Oleg [07.10.16 15:47]
тут че-то arena_used_ratio: 0.8% с этим как-то не согласуется

Konstantin [07.10.16 15:48]
я тоже посмотрел, походу бага. в знаменатели память под индексы не учитывается с какого-то

Konstantin [07.10.16 15:48]
ща поправлю.

Oleg [07.10.16 15:48]
а items_used_ratio? -> items_used / arena_size?

Konstantin [07.10.16 15:49]
нет.

Konstantin [07.10.16 15:49]
items_used+ratio = items_used/slab_count * slab_size
где подсчёт идёт слабов отведённых под items.

Oleg [07.10.16 15:50]
а, вы не смешиваете слабы для items и слабы для индексов и др?

Konstantin Osipov, [07.10.16 15:51]
да

Oleg [07.10.16 15:52]
понятно, т.е. чтобы посчитать items_used_ratio нужно просто посчитать ratio для тех слабов, которые юзаются по items

Konstantin [07.10.16 15:52]
ща я сделаю так чтобы было 9 переменных

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions