получать такую ошибку после обновления с 22.3 на 23.3.13. Может кто сталкивался ?
Progress: 742.12 million rows, 17.38 GB (27.59 million rows/s., 646.36 MB/s.) 99%
2905 rows in set. Elapsed: 26.894 sec. Processed 742.12 million rows, 17.38 GB (27.59 million rows/s., 646.36 MB/s.)
Received exception from server (version 23.3.13):
Code: 241. DB::Exception: Received from 172.31.0.1:30001. DB::Exception: Memory limit (for query) exceeded: would use 20.00 GiB (attempt to allocate chunk of 4194688 bytes), maximum: 20.00 GiB.: While executing ConvertingAggregatedToChunksWithMergingSource. (MEMORY_LIMIT_EXCEEDED)
ну все сталкивались... ваш запрос начал больше памяти есть на 23.3 либо у вас стало больше запросов и они стали больше памяти суммарно выжирать поэтому какие то запросы стали отваливаться по memory limit врятли это относится только к обновлению версии возьмите ваши данные возьмите ваш запрос сделайте стенд и замерьте потребление памяти в system.query_log таблице https://clickhouse.com/docs/en/operations/system-tables/query_log SELECT event_date, count() queries, revision, quantiles(0.5,0.9)(memory_usage) FROM merge('system','^query_log') WHERE memory_usage > 0 GROUP BY event_date, revision ORDER BY event_date; попробуйте потребление памяти сравнить
Спасибо, у нас установлены такие лимиты: max_rows_to_read_leaf=10000000000 max_memory_usage=21474836480 max_bytes_to_read_leaf=163480309760 max_rows_to_read=15000000000 max_bytes_to_read=231061273600 max_execution_time=... max_partitions_per_insert_block=... т.е. стоят ограничения на запрос. Не совсем понял мысль: у вас стало больше запросов и они стали больше памяти суммарно выжирать разве тут не срабатывает ограничение на конкретных запрос ? Мне странно, судя по логам , что запрос раньше ел 2Gb, а после обновления стал сразу 20 GB
>что запрос раньше ел 2Gb, а после обновления стал сразу 20 GB зачастую проблема в том что раньше неправильно работал аккаунтинг и писал 2 вместо 20 но бывает что и в правду стало 20 а было 2, регрессия
а может быть, что раньше по дефолту было 12 thread по-умолчанию, а после обновления установилось 24 ? max_threads
memory tracker в конкретном запросе выделяет память паралельно с этим запросом еще куча других плюс бекграунд сверху все это ограничено памятью сервера... в какой то момент alloc возвращает вам в запросе exception в этом exception просто показываются лимиты и сколько вы хотели запросить про другие запросы и сколько другие процессы запросили у вас тут ничего нет... так понятнее?
да, спасибо за пояснение, теперья я понял Вашу мысль. Нет, верхнюю границу сервера по памяти не пересекает и не приближается, имею ввиду все запросы на сервере. Отслеживаю по графане)
график RSS памяти для clickhouse-server процесса и дочерних можете расшарить? ну или там SELECT event_date, arrayMap(x->formatReadableSize(x),quantiles(0.5,0.9)(value)) mem FROM merge('system','^asynchronous_metric_log') WHERE metric='MemoryResident' GROUP BY event_date ORDER BY event_date;
event_date, mem 2023-10-31, "['8.97 GiB', '15.28 GiB']" 2023-11-01, "['9.39 GiB', '16.68 GiB']"
Обсуждают сегодня