Всем привет. Есть вопрос по оптимизации кластера с большим кол-вом топиков (до 10к) и партиций (больше 50к), и низкой частотой сообщений (1k-5к/cek), и умеренными требованиями по producer latency (до 50 msec P90). кластер на 5 брокеров.
текущая идея - управлять через replica.fetch.min.bytes , поднять с 1 (default) до большего значения (которое уберет срабатывание по данному параметру), и снизить
replica.fetch.wait.max.ms с 500 до 30msec.
первые тесты показывают что рейты FetchFollower упали до расчетных 30/сек (1000/
replica.fetch.wait.max.ms), а было где-то 800/ceк на брокер. Это дроп где-то в раз 30, за счет того что num.replica.fetchers вернули в 1 (было 32).
вроде бы хорошо, но вылезла проблема - CPU usage улетел в область глубокой сатурации (90%). Ну и соотвественно, все тайминги просели сразу.
единственная зацепка пока это метрика kafka_network_RequestMetrics_OneMinuteRate{request="Fetch",name="ErrorsPerSec",error="NONE"}, она скакнула в 4-5 раз, (это при том что FetchFollower упали в 30 раз), и теперь где-то 50к/сек на кластер (близко к кол-ву партиций).
Пока не могу понять что за хрень такая, может у кого есть идеи? Спасибо