Ошибка слишком большого количества открытых файлов в одном из брокеров kafka, даже если ограничения установлены на неограниченное количество.Слишком много данных? - PullRequest
0 голосов
/ 21 декабря 2018

У нас есть кластер Kafka из 5 брокеров (r5.xlarge).Вчера мы запустили наш производственный снимок базы данных, используя Debezium, который в основном выводит всю базу данных в темах Kafka.Я видел, что загрузка ЦП никогда не превышала 30% ни у одного из наших брокеров.Кроме того, в пике Network In было около 350 Мбит / с.

Сейчас, в полночь, один из наших брокеров вышел из строя из-за слишком большого количества исключений из открытых файлов, хотя я установил ulimit неограниченным во всех наших брокерах.Я не понимаю, что становится узким местом в этой установке.Это количество брокеров?или пропускная способность диска?или сеть?

У меня есть несколько идей:

  1. Увеличить число посредников.
  2. Использование нескольких каталогов данных на нескольких дисках?Повысит ли это пропускную способность диска?
  3. Использование сжатия тем.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 21 декабря 2018

Оказывается, что ограничения максимального количества открытых файлов, установленные в /etc/security/limits.conf, не были применимы к моему работающему сервису Kafka. Почему так?
Чтобы проверить пределы, установленные для любого процесса, мы можем сделать

  1. Найти идентификатор процесса с помощью ps ax | grep kafka.Kafka
  2. cat/ proc / {{process_id}} / limit |grep "Максимальное количество открытых файлов"

Для моего процесса Kafka было установлено значение по умолчанию 4096.

Чтобы увеличить этот предел, я добавил строку ulimit -n 1000000как раз перед запуском процесса kafka в служебном файле и все заработало!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...