Size: a a a

ClickHouse не тормозит

2021 March 04

P

Pavel Kozhuhar in ClickHouse не тормозит
Yuri Velgosha
Логи смотрели? У нас было подобное, когда фигачили в ReplicatedMergeTree клики в реалтайме - создавалось овердохера партов, которые потом медленно и печально в фоне мержились. В итоге добились как раз искомого отставания в сутки :)
Переделали логику на вставку через Buffer-таблицу - стало збс.
подскажите в какие логи смотреть. по партам посмотрел(system.parts), их там 2 штуки. Я туда смотрю?)
источник

S

Slach in ClickHouse не тормозит
Pavel Kozhuhar
на роуте distributed таблица, инсертим данные через нее.
данные вставляем сначала в редис, оттуда воркер их выгребает, делает их них один большой инсерт, и шлет его в кх. количество записей в инсерте — до 10к, но, зачастую их гораздо меньше(до 100).
одновременных вставок до 5 в секунду.
проблема в том что до этого было все ок, никто ничего не менял, т.е. по такой схеме оно работало давно и нормально
ну вот и смотрите
у вас 5 вставок в секунду по 100 записей
каждая порождает новый data part который надо реплицировать
и потом еще и в фоне мержить ...
SELECT hostName() h, database, table, count() FROM clusterAllReplicas('your_cluster_name',system.parts) GROUP BY  h, database, table

смотрите сколько у вас кусков данных

копите 10 тыс записей и потом вставляйте...
одним INSERT

у вас там поди в distributed толпа мелких файлов лежит в /var/lib/clickhouse/tmp/
которые еще толком никто не пропушил
источник

S

Slach in ClickHouse не тормозит
Pavel Kozhuhar
подскажите в какие логи смотреть. по партам посмотрел(system.parts), их там 2 штуки. Я туда смотрю?)
у вас Distributed то вообще работает?
смотрите сколько файлов в SELECT *  FROM system.metrics WHERE name = 'DistributedFilesToInsert';
источник

P

Pavel Kozhuhar in ClickHouse не тормозит
Slach
у вас Distributed то вообще работает?
смотрите сколько файлов в SELECT *  FROM system.metrics WHERE name = 'DistributedFilesToInsert';
clickhouse-router.ringostat.net :) SELECT *  FROM system.metrics WHERE metric = 'DistributedFilesToInsert';

SELECT *
FROM system.metrics
WHERE metric = 'DistributedFilesToInsert'

┌─metric───────────────────┬──value─┬─description───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DistributedFilesToInsert │ 906970 │ Number of pending files to process for asynchronous insertion into Distributed tables. Number of files for every shard is summed. │
└──────────────────────────┴────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

1 rows in set. Elapsed: 0.132 sec.


окей, а почему их так много может быть?
источник

K

Konstantin Ilchenko in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
и что все время ошибка на этом запросе или иногда?
полгода работало без проблем, сегодня 2 раза упало, на 3-й раз прошло
источник

DP

Dorian Peregrim in ClickHouse не тормозит
Добрый вечер, коллеги. Такой вопрос.
Есть таблица с движком SummingMergeTree. Нужно добавить поле и указать, чтобы оно суммировалось. Как добавить поле понятно. Непонятно как добавить поле к суммируемым, чтобы стало SummingMergeTree((new_field, field1, field2)). Есть вообще такая возможность или только пересоздавать?
источник

IS

Illia Slobozhanin in ClickHouse не тормозит
Всем привет, зависла мутация. (delete where event_date >= 2021-03-03)
Если делать select count(), то пусто, но в system.mutations - висит - N parts_to_do.
источник

DT

Dmitry Titov in ClickHouse не тормозит
Illia Slobozhanin
Всем привет, зависла мутация. (delete where event_date >= 2021-03-03)
Если делать select count(), то пусто, но в system.mutations - висит - N parts_to_do.
Если зависла, то наверное и ошибка какая то должна быть в system.mutations?
источник

IS

Illia Slobozhanin in ClickHouse не тормозит
Dmitry Titov
Если зависла, то наверное и ошибка какая то должна быть в system.mutations?
Нет ничего такого)

Колонки с ошибками пустые,
В логе КХ тоже пусто
источник

IS

Illia Slobozhanin in ClickHouse не тормозит
Dmitry Titov
Если зависла, то наверное и ошибка какая то должна быть в system.mutations?
Видимо, начался какой-то страшный мерж. Очень много merge/get_part в replication_queue
источник

DT

Dmitry Titov in ClickHouse не тормозит
Illia Slobozhanin
Видимо, начался какой-то страшный мерж. Очень много merge/get_part в replication_queue
select * from system.merges;

16 мержей?
источник

IS

Illia Slobozhanin in ClickHouse не тормозит
Dmitry Titov
select * from system.merges;

16 мержей?
Нет мержей..
источник

DT

Dmitry Titov in ClickHouse не тормозит
Illia Slobozhanin
Нет мержей..
Тогда смотрим в replication_queue, на какой записи застряло
источник

IS

Illia Slobozhanin in ClickHouse не тормозит
Dmitry Titov
select * from system.merges;

16 мержей?
Появилось в логе, типо есть парт локально, но его нет в ЗК и через несколько ретраев - парт потерян. Мб немного рассинхрон произошел и реплика не может договориться какие парты убить/помержить
источник

DT

Dmitry Titov in ClickHouse не тормозит
Illia Slobozhanin
Появилось в логе, типо есть парт локально, но его нет в ЗК и через несколько ретраев - парт потерян. Мб немного рассинхрон произошел и реплика не может договориться какие парты убить/помержить
SYSTEM RESTART REPLICA db.table;
источник

DT

Dmitry Titov in ClickHouse не тормозит
Можно немного протолкнуть очередь этой командой, в таком случае
источник

IS

Illia Slobozhanin in ClickHouse не тормозит
Dmitry Titov
SYSTEM RESTART REPLICA db.table;
Попробовал раньше detach/attach таблицу. Обновилось parts_to_do, меньше стало.
источник

DT

Dmitry Titov in ClickHouse не тормозит
Illia Slobozhanin
Попробовал раньше detach/attach таблицу. Обновилось parts_to_do, меньше стало.
Если парты действительно потеряны, то можно повторить RESTART REPLICA несколько раз
источник

IS

Illia Slobozhanin in ClickHouse не тормозит
Dmitry Titov
Если парты действительно потеряны, то можно повторить RESTART REPLICA несколько раз
Дождался, пока на шарде дошла мутация, на реплике висела attach/detach таблицу - мутация прошла.
В логе куча сообщений типа - no replica has part ... Part is lost. Походу, делит стригерил какой-то большой мерж. И оно помержило все что можно.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Dorian Peregrim
Добрый вечер, коллеги. Такой вопрос.
Есть таблица с движком SummingMergeTree. Нужно добавить поле и указать, чтобы оно суммировалось. Как добавить поле понятно. Непонятно как добавить поле к суммируемым, чтобы стало SummingMergeTree((new_field, field1, field2)). Есть вообще такая возможность или только пересоздавать?
источник