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

Подскажите, а под optimize какое-то свое ограничение выделения памяти? На

трёх серверах есть таблица с движком ReplicatedReplacingMergeTree, один шард, три реплики. Даю команду optimize table short.tags partition 20210509 на первом узле, на третьем процесс завершается через несколько секунд, на первом "зависает" команда, хотя сам мержинг проходит за сопоставимое с третьим узлом время, а на втором вот такое вижу: Not executing log entry MERGE_PARTS for part 20210509_0_12690_490 because source parts size (1.61 GiB) is greater than the current maximum (1.44 GiB), хотя памяти там свободной море и через считанные минуты начинает мержиться другая таблица с размером объединения 2.5GB. Подскажите, куда посмотреть?

8 ответов

10 просмотров

дело не в памяти, а в свободном месте на ДИСКЕ там динамически высчитывается размер парта максимальный который можно мержить исходя из того что свободно на диске https://github.com/ClickHouse/ClickHouse/blob/495c6e03aa9437dac3cd7a44ab3923390bef9982/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp#L167-L188 граничные значения задаются через настройки MergeTree (см. system.merge_tree_settings) https://clickhouse.tech/docs/en/operations/settings/merge-tree-settings/#max-bytes-to-merge-at-max-space-in-pool и https://clickhouse.tech/docs/en/operations/settings/merge-tree-settings/#max-bytes-to-merge-at-min-space-in-pool

посмотрите какие таблицы у вас сожрали место на диске возможно поможет https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-system-tables-eat-my-disk

Роман-Новожилов Автор вопроса

еще посмотрите в настройки background_pool_size текущие https://clickhouse.tech/docs/en/operations/settings/settings/#background_pool_size возможно у вас итак много мержей идет, поэтому свободных entries под OPTIMIZE тупо нет по идее OPTIMIZE на одной реплике, приведет к тому что новые смерженные парты поставятся в очередь на репликацию и скачаются на другие реплики и вам не надо на всех трех реплпиках OPTIMIZE запускать

Роман-Новожилов Автор вопроса
Slach [altinity]
еще посмотрите в настройки background_pool_size те...

Мержей текущих минимально. 10 - максимум.

Роман-Новожилов Автор вопроса
Slach [altinity]
дело не в памяти, а в свободном месте на ДИСКЕ там...

Удивляет то, что на разделе, примотированном под /clickhouse/data/short - места много, но стоило освободить /, на котором оставалось свободно 3ГБ - мержи заработали. Буду выяснять, почему он не тот раздел проверяет.

Роман Новожилов
Мержей текущих минимально. 10 - максимум.

ну значит не 10 посмотрите еще раз в код https://github.com/ClickHouse/ClickHouse/blob/495c6e03aa9437dac3cd7a44ab3923390bef9982/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp#L167-L188 он вызывается вот тут https://github.com/ClickHouse/ClickHouse/blob/9f5cd35a6963cc556a51218b46b0754dcac7306a/src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp#L1147-L1148 и вот тут выводится ваше сообщение об ошибке https://github.com/ClickHouse/ClickHouse/blob/9f5cd35a6963cc556a51218b46b0754dcac7306a/src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp#L1188-L1202

Роман Новожилов
Удивляет то, что на разделе, примотированном под /...

еще раз. я немного наврал, он проверяет не размер он проверяет кол-во свободных тредов в пуле и от этого динамически по диапозону считает размер

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

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

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта