Size: a a a

ClickHouse не тормозит

2020 May 23

DT

Dmitry Titov in ClickHouse не тормозит
Armenak
Приветствую.

Версия ClickHouse 20.4.2.9


Использую следующий скрипт для вставки записей в буферную таблицу:

#!/usr/bin/env bash
eval $(egrep -v '^#' .env | xargs)

shopt -s nullglob

while true; do
 for FILENAME in *.jsonl.gz; do
   echo "Processing: $FILENAME"

   zcat "$FILENAME" \
    | clickhouse-client \
       --user="$CLICKHOUSE_USER" \
       --password="$CLICKHOUSE_PASSWORD" \
       --input_format_skip_unknown_fields=1 \
       --query="INSERT INTO $CLICKHOUSE_TABLE FORMAT JSONEachRow" \
    && mv "$FILENAME" ./processed
 done

 echo "Sleep 10"
 sleep 10
done



Периодически возникает ошибка:

Received exception from server (version 20.4.2):
Code: 241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (total) exceeded: would use 14.10 GiB (attempt to allocate chunk of 4394880 bytes), maximum: 14.10 GiB.


Такую ошибку рекомендуют лечить уменьшением значения max_memory_usage, но оно и так меньше чем RAM на сервере.

<max_memory_usage>13000000000</max_memory_usage>
~ cat /proc/meminfo
MemTotal:       16424828 kB


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

A

Armenak in ClickHouse не тормозит
Dmitry Titov
Переслано от Denny Crane (I don't work at Yandex (never did))
кажется что КХ занимал 4ГБ и тут запрос запустился на 16Гб и его убило.
max_memory_usage -- это сколько один запрос может скушать, КХ помимо этого занимает память на кеш марков до 5ГБ, и на мержи и на все такое, поэтому max_memory_usage = 15 при 16 ГБ у сервера это смело.
Я бы max_memory_usage или 7 или макс. 9 поставил и уменьшил до 1 гб mark_cache_size
<mark_cache_size>1073741824</mark_cache_size>
Спасибо, попробую так настроить.

В основном все обращения от пользователей идут к SummingMT, поэтому решил сэкономить на RAM.
источник

A

Armenak in ClickHouse не тормозит
Armenak
Размера батча максимально 30к. На вставку мало памяти расходуется. По всей видимости она отжирается другими запросами. На графике падения - это рестарты CH.
А это нормально, что CH не возвращает RAM в ОС?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Armenak
А это нормально, что CH не возвращает RAM в ОС?
конечно, зачем ему возвращать, а потом опять запрашивать у ос? долго и нудно
источник

A

Armenak in ClickHouse не тормозит
Да и подумал. Спасибо за помощь!
источник

DT

Dmitry Titov in ClickHouse не тормозит
Armenak
Спасибо, попробую так настроить.

В основном все обращения от пользователей идут к SummingMT, поэтому решил сэкономить на RAM.
кликхаус при загрузки сразу поднимает в оперативную память PK таблицы(и он там всегда находится), при больших таблицах эта штука может отъедать довольно много гигабайт.
источник

A

Armenak in ClickHouse не тормозит
Таблица 5ТБ уже.
источник

DT

Dmitry Titov in ClickHouse не тормозит
вообще можешь поискать по "16гб" в этой группе, денни писал что можно подкрутить, что бы с этим жить
источник

DT

Dmitry Titov in ClickHouse не тормозит
те же мержи тоже требуют память.
источник

A

Armenak in ClickHouse не тормозит
Dmitry Titov
вообще можешь поискать по "16гб" в этой группе, денни писал что можно подкрутить, что бы с этим жить
👍 Да, видел и на github его ответ по этой теме.
источник

A

Armenak in ClickHouse не тормозит
Как лучше сказать кликхаусу, чтобы подтянулись изменения из config.xml, userx.xml? sudo service clickhouse-server restart - наверное не лучший способ.
источник

DT

Dmitry Titov in ClickHouse не тормозит
Armenak
Как лучше сказать кликхаусу, чтобы подтянулись изменения из config.xml, userx.xml? sudo service clickhouse-server restart - наверное не лучший способ.
у меня после релоада начинались проблемы с сервисом линукса(service clickhouse-server говорил, что клик неживой и приходилось убивать его через killall clickhouse-server) какие то
источник

DT

Dmitry Titov in ClickHouse не тормозит
вообще из users.xml кликхаус подтягивает на лету
источник

DT

Dmitry Titov in ClickHouse не тормозит
Dmitry Titov
у меня после релоада начинались проблемы с сервисом линукса(service clickhouse-server говорил, что клик неживой и приходилось убивать его через killall clickhouse-server) какие то
поэтому я пользуюсь рестартом
источник
2020 May 24

NK

Nursultan Kariev in ClickHouse не тормозит
Всем привет, возможно вопрос немного не в тему, но хотелось узнать, что вы используете для регулярной проверки таблиц на актуальность данных
источник

RI

Rustam Ibragimov in ClickHouse не тормозит
(сейчас резонно полетит вопрос "что именно значит актуальность в этом вопросе") 🙂
источник

S

Sergey in ClickHouse не тормозит
Nursultan Kariev
Всем привет, возможно вопрос немного не в тему, но хотелось узнать, что вы используете для регулярной проверки таблиц на актуальность данных
select max(timestamp) from ... where day=today() ?
источник

NK

Nursultan Kariev in ClickHouse не тормозит
Ну, мне нужно проверять каждый день, залились ли данные за прошлый
источник

NK

Nursultan Kariev in ClickHouse не тормозит
Sergey
select max(timestamp) from ... where day=today() ?
Я написал баш скрипт к которому подвязал отправку на телеграм, но, думал, может есть более продвинутые методы
источник

NK

Nursultan Kariev in ClickHouse не тормозит
Вот и стало интересно как более опытные люди делают что-то подобное
источник