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

Тоже залечу со своей проблемой: Для юзера выделено 64ГБ оперативки, max_bytes_before_external_group_by

и max_bytes_before_external_sort выставлены по 21ГБ. Запускаю в параллель два запроса: 1. агрегация большой таблицы с последующим инсертом; 2. сортировка большой таблицы. Через некоторое время оба этих запроса падают по Memory limit (for user) exceeded (если запустить три сортировки из 2 запроса одновременно, то они отрабатывают нормально). Как я понимаю, происходит следующее: 2 запрос занимает положенные ему <=21ГБ, а 1 запрос занимает слишком много оперативки для чтения данных (например, 50ГБ), отчего оба запроса падают.
Вопрос: есть ли какой-то параметр, которым можно ограничить максимально занимаемое в оперативке место на чтение? Например, загрузились блоки на 20ГБ и пока они не обработаются, новые блоки в оперативку подгружаться не будут.

12 ответов

15 просмотров

max_threads =5

Михаил-Жиляков Автор вопроса
Denny [Altinity]
max_threads =5

Нет, это не помогает. Я обнаружил, что у меня эти запросы в принципе не могут одновременно пролезть в оперативку (условно, для юзера доступно только 17ГБ, а оба запроса вместе жрут 20ГБ). Есть ли какой-то способ, как можно запросами мониторить, сколько и на что юзер потребляет оперативки? Нашел в Яндекс.Облаке вот такой дашборд, но хотелось бы посмотреть на потребление оперативки в разрезе юзеров, чтобы как-нибудь жонглировать квотами на юзеров/запросы/кэширование и т.д.

Михаил Жиляков
screenshot Нет, это не помогает. Я обнаружил, что у меня эти ...

готового нет. только select ... from system.processes group by user

Михаил-Жиляков Автор вопроса
Denny [Altinity]
готового нет. только select ... from system.proces...

select ... from system.processes показывает только потребление памяти запросами, а она еще расходуется на всякие кеши, хранение ключей и т.д. Вообще, хотелось бы полный список видеть, на что и сколько уходит оперативка, чтобы высчитывать, сколько ее осталось свободной на новый запрос... Но этого я нигде не нашел

Михаил Жиляков
select ... from system.processes показывает только...

SELECT * FROM asynchronous_metrics WHERE metric LIKE '%MemoryVirtual%' -- доступно select * from metrics where metric like 'MemoryTracking' -- использовано

Volodymyr Bunchuk
screenshot Хм, не вижу ’MemoryTracking’

старый у вас КХ, это с 20.9 наверное

Volodymyr Bunchuk
20.10

так таблица не та

Михаил-Жиляков Автор вопроса
Denny [Altinity]
SELECT * FROM asynchronous_metrics WHERE metric LI...

Спасибо, на кое-какие мысли меня это навело!) Правда, насколько я понимаю, SELECT * FROM asynchronous_metrics WHERE metric LIKE '%MemoryVirtual%' — это про доступное место на диске для хранение, а не про оперативку

Михаил Жиляков
Спасибо, на кое-какие мысли меня это навело!) Прав...

нет, это про виртуальную память https://en.wikipedia.org/wiki/Virtual_memory

Михаил Жиляков
Спасибо, на кое-какие мысли меня это навело!) Прав...

разве? А у вас своп есть? MemoryVirtual │ 55 092 850 688 MemoryDataAndStack │ 54 464 454 656 Filesystem Size Used Avail Use% Mounted on /dev/md0 938G 236G 655G 27% / free -h total used free shared buff/cache available Mem: 62Gi 30Gi 22Gi 164Mi 9.6Gi 31Gi Swap: 63Gi 3.2Gi 60Gi less /var/log/clickhouse-server/clickhouse-server.log ... Application: Setting max_server_memory_usage was set to 56.53 GiB (62.81 GiB available * 0.90 max_server_memory_usage_to_ram_ratio)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта