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

Привет всем. Может, кто сталкивался с ограничением мерджей?

В одной таблице в партиции уже 1000 партов, иногда в логах вижу задержку вставки на 8мс, больше ничего необычного не вижу, партиции небольшие, может есть какие-то параметры?

20 ответов

14 просмотров

сколько из этих партов active ? как вставляете какими кусками? задержка это походу у вас Throttling SELECT * FROM system.events WHERE event ILIKE '%inserts%';

Vadim-Metikov Автор вопроса
Slach [altinity]
сколько из этих партов active ? как вставляете как...

Все активные, если не только активные, то 1100-1200, Куски по 5-8м строк, строки по 150 байт примерно,

Vadim-Metikov Автор вопроса
Slach [altinity]
сколько из этих партов active ? как вставляете как...

ILIKE не нашел, версия 19.15.4, но SELECT * FROM system.events WHERE event LIKE '%nserts%' ┌─event──────────────────────┬─value─┬─description──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ DelayedInserts │ 3269 │ Number of times the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. │ │ DelayedInsertsMilliseconds │ 14336 │ Total number of milliseconds spent while the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. │ └────────────────────────────┴───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Vadim-Metikov Автор вопроса
Slach [altinity]
сколько из этих партов active ? как вставляете как...

Даже ст тротлингом вставки идут , не отставая, почему парты не смердживаются, не ясно, всера было 400 кусков активных, а сегодня выросло и не падает, хотя ресурсы(диск, проц, память, воркеры) - есть, может какой-то лимит сверху говорит, мерджить мелкими пачками или что-то ещё?

max_bytes_to_merge_at_max_space_in_pool 161061273600 больше этого размера парта мерджи не будут происходить так же мерджи не будут происходить на больших партах если меньше 8 (number_of_free_entries_in_pool_to_lower_max_size_of_merge) потоков свободно в пуле

Vadim-Metikov Автор вопроса
【D】【J】
max_bytes_to_merge_at_max_space_in_pool 161061273...

max_bytes_to_merge_at_max_space_in_pool - нет такой настройки, number_of_free_entries_in_pool_to_lower_max_size_of_merge - это имя метрики?

Vadim Metikov
max_bytes_to_merge_at_max_space_in_pool - нет тако...

select * from system.merge_tree_settings s where name like '%merge%';

Vadim-Metikov Автор вопроса
【D】【J】
select * from system.merge_tree_settings s where n...

SELECT * FROM system.merge_tree_settings WHERE name LIKE '%merge%' ┌─name──────────────────────────────────────────────────────┬─value─────────┬─changed─┬─description────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ max_bytes_to_merge_at_max_space_in_pool │ 4394967296000 │ 1 │ Maximum in total size of parts to merge, when there are maximum free threads in background pool (or entries in replication queue). │ │ max_bytes_to_merge_at_min_space_in_pool │ 1048576 │ 0 │ Maximum in total size of parts to merge, when there are minimum free threads in background pool (or entries in replication queue). │ │ max_replicated_merges_in_queue │ 16 │ 0 │ How many tasks of merging and mutating parts are allowed simultaneously in ReplicatedMergeTree queue. │ │ number_of_free_entries_in_pool_to_lower_max_size_of_merge │ 8 │ 0 │ When there is less than specified number of free entries in pool (or replicated queue), start to lower maximum size of merge to process (or to put in queue). This is to allow small merges to process - not filling the pool with long running merges. │ │ prefer_fetch_merged_part_time_threshold │ 3600 │ 0 │ If time passed after replication log entry creation exceeds this threshold and sum size of parts is greater than "prefer_fetch_merged_part_size_threshold", prefer fetching merged part from replica instead of doing merge locally. To speed up very long merges. │ │ prefer_fetch_merged_part_size_threshold │ 10737418240 │ 0 │ If sum size of parts exceeds this threshold and time passed after replication log entry creation is greater than "prefer_fetch_merged_part_time_threshold", prefer fetching merged part from replica instead of doing merge locally. To speed up very long merges. │ │ enable_vertical_merge_algorithm │ 1 │ 0 │ Enable usage of Vertical merge algorithm. │ │ vertical_merge_algorithm_min_rows_to_activate │ 131072 │ 0 │ Minimal (approximate) sum of rows in merging parts to activate Vertical merge algorithm. │ │ vertical_merge_algorithm_min_columns_to_activate │ 11 │ 0 │ Minimal amount of non-PK columns to activate Vertical merge algorithm. │ │ min_merge_bytes_to_use_direct_io │ 10737418240 │ 0 │ Minimal amount of bytes to enable O_DIRECT in merge (0 - disabled). │

Vadim-Metikov Автор вопроса
【D】【J】
select * from system.merge_tree_settings s where n...

│ merge_with_ttl_timeout │ 86400 │ 0 │ Minimal time in seconds, when merge with TTL can be repeated. │ └───────────────────────────────────────────────────────────┴───────────────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Vadim Metikov
SELECT * FROM system.merge_tree_settings WHERE nam...

select * from system.metrics m where metric like '%Background%Task%'; смотрите сколько у вас активных мерджей и других тасков в пуле

так КХ искусственно тормозит инсерты https://clickhouse.tech/docs/ru/operations/settings/merge-tree-settings/#max-delay-to-insert

Vadim-Metikov Автор вопроса
【D】【J】
select * from system.metrics m where metric like '...

SELECT metric, value FROM system.metrics WHERE metric LIKE '%Background%' ┌─metric───────────────────────────────────┬────────value─┐ │ BackgroundPoolTask │ 13 │ │ BackgroundSchedulePoolTask │ 0 │ │ MemoryTrackingInBackgroundProcessingPool │ -2915439214 │ │ MemoryTrackingInBackgroundSchedulePool │ -37714090936 │ └──────────────────────────────────────────┴──────────────┘

Vadim Metikov
SELECT metric, value FROM system.metrics W...

если тасков 40. проблемы быть не должно.. даже не знаю, может версия старая/баги

Vadim Metikov
SELECT metric, value FROM system.metrics W...

ещё может быть что места на диске нет. Смотрите в логи, там увидите ошибки почему мерджи не идут

Vadim-Metikov Автор вопроса
【D】【J】
ещё может быть что места на диске нет. Смотрите в...

Место есть и КХ это видит: <Debug> DiskSpaceMonitor: Reserving 1.00 MiB on disk default, having unreserved 4.85 TiB.

Vadim-Metikov Автор вопроса
【D】【J】
ещё может быть что места на диске нет. Смотрите в...

А по какому слову искать, в логе ошибок не вижу: по этой таблице идут мерджи: 2021.01.26 17:47:53.456366 [ 41 ] {} <Debug> default.graphite_week2 (MergerMutator): Merging 6 parts: from 20210125_37176_37176_0 to 20210125_37181_37181_0 into tmp_merge_20210125_37176_37181_1 2021.01.26 17:47:53.456738 [ 41 ] {} <Debug> default.graphite_week2 (MergerMutator): Selected MergeAlgorithm: Horizontal

Vadim-Metikov Автор вопроса
【D】【J】
ну попробуйте "Not executing log entry"

Есть такие: 2021.01.26 18:04:29.154304 [ 37 ] {} <Debug> default.graphite_week2 (ReplicatedMergeTreeQueue): Not executing log entry for part 20210111_177490_178692_422 because another log entry for the same part is being processed. This shouldn't happen often. и 2021.01.26 08:42:37.323698 [ 30 ] {} <Debug> default.graphite_week2 (ReplicatedMergeTreeQueue): Not executing log entry MERGE_PARTS for part 20210125_29062_29098_2 because source parts size (1.20 GiB) is greater than the current maximum (304.36 MiB). - это когда воркеры заканчивались

Vadim Metikov
Есть такие: 2021.01.26 18:04:29.154304 [ 37 ] {} <...

ну значит workerы все же заканчиваются, несмотря на то, что их 40 =) посчитайте в логах по дням как часто вы видите такое, и участилось ли это - скорее всего из-за этого. ещё есть вариант вас тупо не поспевают мерджи за вставками (либо вставок стало сильно больше, либо ещё чего)

Vadim-Metikov Автор вопроса
【D】【J】
ну значит workerы все же заканчиваются, несмотря н...

Воркеры заканчивались утром, с 11 часов утра половина свободна, вставки мы разряжаем, вставляя реже, но пачками крупнее

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

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

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