У нас около 100 кафка таблиц.
В кластере 2 машины, одинаковых по железу. На каждой ноде по одной связке kafkaEngine -> Mat.View -> Table. на каждый кафка топик.
В топике 2 партиции. Каждая нода клики читает 1 партицию (num_consumers=1)
Каждая таблица Table (в которую сливается стрим из кафки) реплицирована на 2 ноды.
Получается, что каждая нода КХ читает половину топика и реплицирует ее на вторую ноду.
На одной ноде (на одной и той же) >1000 здач в replication_queue стабильно.. На ней background_schedule_poll_siz = 128
Или моожет что не так делаем?
вы из MV вставляете в ReplicatedMergeTree? или в Distributed? kafka_thread_per_consumer какой в настройках Kafka таблицы? размер батча kafka_max_block_size ? сколько в итоге записей в секунду вставляется?
из MV в ReplicatedMergeTree kafka_thread_per_consumer и kafka_max_block_size не меняли - дефолтные рейт сообщений по всем топикам ~ 3.5k - 4k сообщений в сек (пиковые). Нормальный режим - ~1k/sec
а записей туда сколько по мониторингу кафки? что вообще мониторинг говорит про нагрукзу на диски и на сколько InsertRows в system.metrics ? ReplicatedMergeTree одна и та же?
вот вижу скачек Inserted rows per second на той ноде, на которой все нормально - 100к. Обычная нагрузка ~1k/sec наверное после него и пошли проблемы с replication_queue на второй реплике. UPD: Хотя, это не закономерномть. Очередь накапливается ибез таких всплесков
Обсуждают сегодня