Как найти основную причину высокой загрузки ЦП брокеров Kafka? - PullRequest
0 голосов
/ 02 марта 2019

Я отвечаю за управление двумя кластерами kafka (один для prod и один для нашей среды разработки).Настройка в основном похожа, но среда разработки не имеет настройки SASL / SSL и использует только 4 вместо 8 брокеров.Каждый брокер назначается выделенному узлу Google Kubernetes с 4 виртуальными ЦП и 26 ГБ ОЗУ.

В нашей среде разработки у нас есть примерно 1000 сообщений в секунду, и каждый из 4 брокеров довольно последовательно использует 3 из4 доступных ядра ЦП (загрузка ЦП 75%).

В нашей производственной среде мы получили около 1500 сообщений в секунду, и загрузка ЦП также составляет 3 из 4 ядер.

Кажется, что использование ЦП является, по крайней мере, узким местом для нас, и я хотел бы знать, как я могу выполнить профилирование ЦП, чтобы я знал, что именно является причиной высокой загрузки ЦП.Так как он относительно последовательный, я думаю, это может быть наше быстрое сжатие.

Меня интересуют все идеи о том, как я могу исследовать причину высокой загрузки ЦП и как я могу настроить ее в своем кластере.

  • Версия Apache Kafka: 2.1(Раньше загрузка процессора была похожа и на Kafka 0.11.x)

  • Dev Cluster (сжатие Snappy, без SASL / SSL, 4 брокера): 1000 сообщений в / сек, 3 ядра процессорасогласованное использование

  • кластер Prod (сжатие Snappy, SASL / SSL, 8 брокеров): 1500 сообщений в / с, согласованное использование 3 ядер процессора

Примечание: я уже убедился, что продюсеры производят сжатое сжатие своих сообщений.У меня есть доступ ко всем метрикам JMX, но я не смог найти ничего полезного для определения загрузки ЦП.

У меня уже есть метрики, прикрепленные к моему прометею (здесь я также получил статистику использования ЦП).Проблема в том, что загрузка ЦП контейнера не говорит мне, ПОЧЕМУ он такой высокий.Мне нужно больше детализации, например, на что тратятся циклы ЦП (сжатие? Связь с брокером? Sasl / ssl?).

1 Ответ

0 голосов
/ 02 марта 2019

Если у вас есть доступ к метрикам JMX, вы почти готовы к профилированию процессора.Все, что нужно сделать, это установить Prometheus и Grafana, а затем сохранить метрики в Prometheus и отслеживать их с помощью Grafana.Вы можете найти полные шаги в Мониторинг Кафки

Grafana Dashboard for cluster monitoring

Примечание.тест производительности может помочь вам

Обновление:

На основе Confluent , большая часть использования ЦП происходит из-за SSL.

Обратите внимание, что если SSL включен, требования к процессору могут быть значительно выше (точные детали зависят от типа процессора и реализации JVM).

Вы должны выбрать современный процессор с несколькими ядрами.,Обычные кластеры используют 24 ядра.

Если вам нужно выбрать между более быстрыми ЦП или несколькими ядрами, выберите больше ядер.Дополнительный параллелизм, предлагаемый несколькими ядрами, намного перевесит чуть более высокую тактовую частоту.

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