в которые идет активная запись в каждый? При этом ещё и на HDD. Я сделал такой нехитрый запрос:
select count()
from system.parts_columns
where modification_time >= now() - 60
И он показал 9097 созданных файлов за 60 секунд — в среднем это по 150 файлов в секунду, и для HDD это уже довольно плохо. Мы используем буферные таблицы с интервалом флаша в 15 секунд, и где-то так на практике и получается, если смотреть на active партици. Однако у нас получается много мелких мержей, и, кажется, что они весьма плохо влияют на производительность. Что с этим делать, я лично не очень понимаю (кроме очевидного варианта с увеличением интервала флаша, но это не далеко идеальный вариант).
У нас так, но мы пачки формируем извне в отдельном софте. И вставляем пачки по условию: или раз в минуту или по достижнию МАХ_ПАЧКА.
Сгруппируйте по таблице селект, у вас поди таблицы есть в которых партиционировано по полю с кучей значений и insert разбивается на много кусков.
Если кому интересно, чем это закончилось — кажется, я более-менее правильно всё посчитал, сколько файлов создается, и их создавалось действительно слишком много, поэтому я увеличил интервал сброса буферов по умолчанию до 60 секунд (с 15 секунд) и серверу сразу полегчало, утилизация дисков теперь находится на уровне 7-8%, а также уменьшился объем записи на диск с ~10 мб/сек до ~3 мб/сек за счёт того, что больше не идет много мелких мержей, которые тоже доставляли проблемы до этого. Не могу сказать, что мне это решение прямо очень нравится, но всё равно это лучше, чем ничего. Спасибо за участие (хотя по сути все советы и сводились к тому, чтобы делать флаши в таблицу пореже :))
Обсуждают сегодня