Size: a a a

ClickHouse не тормозит

2020 May 23

OM

Oleksii Mylotskyi in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
я ошибся, это видимо вообще не то что я думал.

а что показывает у зукипера echo mntr|nc localhost 2181

и что в логе КХ перед трейсом, что делал этот тред?
В КХ:

Вначале вылетает такаяа ошибка (не важно какой я ALTER делаю, DELETE или MODIFY COLUMN одно и тоже):


020.05.23 15:55:51.334585 [ 4840 ] {a447401d-abaa-49d7-be37-5c099da848cd} <Debug> executeQuery: (from 127.0.0.1:38582) ALTER TABLE default.logs_real_raw_local MODIFY COLUMN col1 Int64
2020.05.23 15:55:51.334644 [ 4840 ] {a447401d-abaa-49d7-be37-5c099da848cd} <Trace> ContextAccess (default): Access granted: ALTER MODIFY COLUMN(cash) ON default.logs_real_raw_local
2020.05.23 15:55:52.793963 [ 4773 ] {} <Error> void Coordination::ZooKeeper::receiveThread(): Code: 33, e.displayText() = DB::Exception: Cannot read all data. Bytes read: 0. Bytes expected: 4., Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x10418760 in /usr/bin/clickhouse
1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x8fff8ad in /usr/bin/clickhouse
2. DB::ReadBuffer::readStrict(char*, unsigned long) @ 0x903b49f in /usr/bin/clickhouse
3. Coordination::ZooKeeper::receiveEvent() @ 0xde0cce1 in /usr/bin/clickhouse
4. Coordination::ZooKeeper::receiveThread() @ 0xde0e15c in /usr/bin/clickhouse

Затем сразу:

2020.05.23 15:55:52.794298 [ 4825 ] {} <Error> void Coordination::ZooKeeper::sendThread(): Code: 210, e.displayText() = DB::NetException: I/O error: Broken pipe, while writing to socket (zkhost:2181), Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x10418760 in /usr/bin/clickhouse
1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x8fff8ad in /usr/bin/clickhouse
2. ? @ 0x9115ef4 in /usr/bin/clickhouse

Потом следом:

2020.05.23 15:55:52.794657 [ 4773 ] {} <Error> void Coordination::ZooKeeper::finalize(bool, bool): Poco::Exception. Code: 1000, e.code() = 107, e.displayText() = Net Exception: Socket is not connected, Stack trace (when copying this message, always include the lines below):

И дальше такая:
2020.05.23 15:55:52.797232 [ 4840 ] {a447401d-abaa-49d7-be37-5c099da848cd} <Error> executeQuery: Code: 999, e.displayText() = Coordination::Exception: Connection loss (version 20.4.3.16 (official build)) (from 127.0.0.1:38582) (in query: ALTER TABLE default.logs_real_raw_local MODIFY COLUMN col1 Int64 ), Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x10418760 in /usr/bin/clickhouse
1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x8fff8ad in /usr/bin/clickhouse
2. Coordination::Exception::Exception(int) @ 0xdddef5d in /usr/bin/clickhouse
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Oleksii Mylotskyi
В КХ:

Вначале вылетает такаяа ошибка (не важно какой я ALTER делаю, DELETE или MODIFY COLUMN одно и тоже):


020.05.23 15:55:51.334585 [ 4840 ] {a447401d-abaa-49d7-be37-5c099da848cd} <Debug> executeQuery: (from 127.0.0.1:38582) ALTER TABLE default.logs_real_raw_local MODIFY COLUMN col1 Int64
2020.05.23 15:55:51.334644 [ 4840 ] {a447401d-abaa-49d7-be37-5c099da848cd} <Trace> ContextAccess (default): Access granted: ALTER MODIFY COLUMN(cash) ON default.logs_real_raw_local
2020.05.23 15:55:52.793963 [ 4773 ] {} <Error> void Coordination::ZooKeeper::receiveThread(): Code: 33, e.displayText() = DB::Exception: Cannot read all data. Bytes read: 0. Bytes expected: 4., Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x10418760 in /usr/bin/clickhouse
1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x8fff8ad in /usr/bin/clickhouse
2. DB::ReadBuffer::readStrict(char*, unsigned long) @ 0x903b49f in /usr/bin/clickhouse
3. Coordination::ZooKeeper::receiveEvent() @ 0xde0cce1 in /usr/bin/clickhouse
4. Coordination::ZooKeeper::receiveThread() @ 0xde0e15c in /usr/bin/clickhouse

Затем сразу:

2020.05.23 15:55:52.794298 [ 4825 ] {} <Error> void Coordination::ZooKeeper::sendThread(): Code: 210, e.displayText() = DB::NetException: I/O error: Broken pipe, while writing to socket (zkhost:2181), Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x10418760 in /usr/bin/clickhouse
1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x8fff8ad in /usr/bin/clickhouse
2. ? @ 0x9115ef4 in /usr/bin/clickhouse

Потом следом:

2020.05.23 15:55:52.794657 [ 4773 ] {} <Error> void Coordination::ZooKeeper::finalize(bool, bool): Poco::Exception. Code: 1000, e.code() = 107, e.displayText() = Net Exception: Socket is not connected, Stack trace (when copying this message, always include the lines below):

И дальше такая:
2020.05.23 15:55:52.797232 [ 4840 ] {a447401d-abaa-49d7-be37-5c099da848cd} <Error> executeQuery: Code: 999, e.displayText() = Coordination::Exception: Connection loss (version 20.4.3.16 (official build)) (from 127.0.0.1:38582) (in query: ALTER TABLE default.logs_real_raw_local MODIFY COLUMN col1 Int64 ), Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x10418760 in /usr/bin/clickhouse
1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x8fff8ad in /usr/bin/clickhouse
2. Coordination::Exception::Exception(int) @ 0xdddef5d in /usr/bin/clickhouse
логлевел не трейс видимо. Ничего тут нет. Просто проблема с зк.

что echo mntr|nc localhost 2181
источник

OM

Oleksii Mylotskyi in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
логлевел не трейс видимо. Ничего тут нет. Просто проблема с зк.

что echo mntr|nc localhost 2181
источник

AB

Artur Beglaryan in ClickHouse не тормозит
/report
источник

A

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

Версия 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


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

DT

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


так это не решение ошибки, просто кликхаус тогда кидает эксшепшен, вместо того что придет ООМ и убьёт кликхаус
источник

DT

Dmitry Titov in ClickHouse не тормозит
И в твоем случае поможет я думаю уменьшение размера одного батча, если у тебя кликхас на 1 вставку отжирает 14гб(что несколько для меня удивительно)
источник

DT

Dmitry Titov in ClickHouse не тормозит
у тебя какой размер батча на вставку то?
источник

A

Armenak in ClickHouse не тормозит
Dmitry Titov
И в твоем случае поможет я думаю уменьшение размера одного батча, если у тебя кликхас на 1 вставку отжирает 14гб(что несколько для меня удивительно)
Размера батча максимально 30к. На вставку мало памяти расходуется. По всей видимости она отжирается другими запросами. На графике падения - это рестарты CH.
источник

DT

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

DT

Dmitry Titov in ClickHouse не тормозит
у тебя 16гб памяти у сервера?
источник

A

Armenak in ClickHouse не тормозит
Dmitry Titov
рестарты это ООМ приходит что ли?
Нет, руками перезапускал.
источник

A

Armenak in ClickHouse не тормозит
Dmitry Titov
у тебя 16гб памяти у сервера?
Да.
источник

DT

Dmitry Titov in ClickHouse не тормозит
вообще это больно и мало на самом деле
источник

DT

Dmitry Titov in ClickHouse не тормозит
на 16 гб тебе нужно будет прикрутить некоторые настроечки под кеш допустим
источник

DT

Dmitry Titov in ClickHouse не тормозит
Переслано от Denny Crane (I don't...
кажется что КХ занимал 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>
источник

DT

Dmitry Titov 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>
два жирных запроса и клик улетает по ООМ
источник

DT

Dmitry Titov in ClickHouse не тормозит
у тебя свап включен?
источник

A

Armenak in ClickHouse не тормозит
Dmitry Titov
у тебя свап включен?
➜  ~ swapon --show
NAME      TYPE SIZE  USED PRIO
/swapfile file  20G 42.8M   -2
источник

DT

Dmitry Titov in ClickHouse не тормозит
Armenak
➜  ~ swapon --show
NAME      TYPE SIZE  USED PRIO
/swapfile file  20G 42.8M   -2
ну ок
источник