215 похожих чатов

Как понять куда tarantool расходует оперативку? Каждый день добавляется >100MB, пока

не заканчивается память, потом тарантул умирает.
Данные хранятся только на виниле, пишет 300MB/час

После перезапуска кушает всего 230MB оперативки.

9 ответов

32 просмотра

Похоже на то что винил подтекает? А есть репро? Или какой сценарий использования?

Andrew- Автор вопроса

Качает блокчейн биткоина, обновляет балансы по адресам, делает это в транзакции, увеличивает блок. Индексов нет данные растут 6MB в минуту на виниле, оперативка тоже растет. Код https://gist.github.com/nodermann/9f5d9cfe12a3b2116ed94136db38df3b Полный лог работы от старта до падения https://gist.github.com/nodermann/887c513975ca2c4710ba33ad56a062be В этот раз упал за 6 часов. Раньше чуть больше суток работал, сейчас стало больше адресов добавлятся и оперативка заканчивается быстрее.

Возможно, это LUA память, а не винильная… В любом случае посмотреть потребление памяти вам поможет box.info.memory() https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_info/memory/ Также вы, возможно, хотели бы попробовать https://github.com/tarantool/metrics

Так не может ли это быть связано с тем что на каждую операцию у вас выполняются 2 действия которые попадают в wal?

Andrew- Автор вопроса

Это как?

Опций box.cfg не видно. в put_address get+insert/update можно в принципе заменить на upsert, чтобы не ходить в лишний раз в дерево. Посмотрите еще на https://github.com/tarantool/metrics чтобы собрать телеметрию, вслепую непонятно какая именно часть оперативки растет. вот тут описано как в 6 строчек, прикрутить телеметрию к прометеусу: https://www.tarantool.io/en/doc/latest/book/monitoring/plugins/ Тут описано, как взять публичный графана дашборд, как основу: https://www.tarantool.io/en/doc/latest/book/monitoring/grafana_dashboard/

Andrew- Автор вопроса

добавил вывод box.cfg в коммент

Andrew- Автор вопроса

grafana ничего интересного не показала, там не все метрики добавлены в дэшборд вот лог для прометеус за 16 часов работы https://gist.github.com/nodermann/be7ec488e308c5b78f54c9033c42d6d3 в memtx ничего не хранится, но продолжает кушать оперативку, добавил swapfile чтобы тарантул жил подольше, но и тот закончится к ночи

В статистике ОС вы не увидите разбивки по потреблению памяти. Для этого вам нужно поставить плагин metrics. Вот тут вы можете посмотреть как в 6 строчек, прикрутить телеметрию к прометеусу: https://www.tarantool.io/en/doc/latest/book/monitoring/plugins/ ]А здесь описано, как в целом дорабатывать публичный графана дашборд: https://www.tarantool.io/en/doc/latest/book/monitoring/grafana_dashboard/ Вот тут описано название метрик, которые вы хотите выводить (скрин прилагаю): https://www.tarantool.io/ru/doc/latest/book/monitoring/metrics_reference/ Как уже предполагали коллеги выше, весьма вероятны ошибки в работе с памятью LUA (это метрика tnt_info_memory_lua)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта