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

CH съел всю память, упал, теперь на старте сообщает: 2022.02.28 20:12:31.626300

[ 27013 ] {} <Error> void DB::MergeTreeBackgroundExecutor<DB::MergeMutateRuntimeQueue>::routine(DB::TaskRuntimeDataPtr) [Queue = DB::MergeMutateRuntimeQueue]: Code: 241. DB::Exception: Memory limit (total) exceeded: would use 3.47 GiB (attempt to allocate chunk of 4246384 bytes), maximum: 3.47 GiB: (while reading column ProfileEvent_DictCacheLockReadNs): (while reading from part /data/clickhouse/store/adf/adf01457-dd13-4c93-90b0-afb1a022254c/202202_364295_367674_117/ from mark 0 with max_rows_to_read = 4112): While executing MergeTreeSequentialSource. (MEMORY_LIMIT_EXCEEDED)

как-то можно из этого выйти без накидывания памяти?
можно ли понять, что именно пытается и не может СН прочитать? что такое ProfileEvent_DictCacheLockReadNs не знаю, как-будто что-то внутреннее

3 ответов

27 просмотров

Возможно вам лучше использовать clickhouse-local, а не clickhouse-server на 4 гб оперативки

узнать какая конкретно таблица падает надо узнав откуда идет линк на эту папку (в engine-atomic все таблицы хранятся в ууид папках с указателями): ls -l /data/clickhouse/store/adf/adf01457-dd13-4c93-90b0-afb1a022254c в вашем случае это метрик лог судя по колонке. выключите metric_log в конфиге и удалите sql... на 4ГБ включать такое перебор наверно. убираем в конфиге https://github.com/ClickHouse/ClickHouse/issues/17735#issuecomment-737404868 (удаляем метадату) rm /data/clickhouse/data/metadata/system/metric_log* я бы и part_log, query_thread_log тоже убрал, либо выставил агрессивные TTL.

Alex-Spiridonov Автор вопроса
【D】【J】
узнать какая конкретно таблица падает надо узнав о...

спасибо за разъяснения! Пока добавили памяти до 8Гб на каждой ноде - СН всё разобрал, ошибки ушли. Хотя по графику наоборот потребление памяти упало после добавления. Наверно, 4Гб действительно мало даже для ненагруженного экземпляра

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта