Главная страница
Навигация по странице:

  • Брокер Раздел Ведущая реплика Входящих байтов, Мбайт/с Исходящих байтов, Мбайт/с

  • Вспомогательные утилиты для балансировки кластера

  • Типичные серверы и проблемы

  • Одна паршивая овца

  • Таблица 10.4.

  • Разумное использование потоков

  • Apache Kafka. Потоковая обработка и анализ данных. Apache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly


    Скачать 7.59 Mb.
    НазваниеApache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly
    Дата21.06.2022
    Размер7.59 Mb.
    Формат файлаpdf
    Имя файлаApache Kafka. Потоковая обработка и анализ данных.pdf
    ТипДокументы
    #609074
    страница31 из 39
    1   ...   27   28   29   30   31   32   33   34   ...   39
    Выбор предпочтительной реплики
    Прежде чем пытаться выяснить причины проблемы, следует убедиться, что не- давно была выбрана предпочтительная реплика (см. главу 9). Брокеры Kafka не становятся автоматически вновь ведущими для разделов (разве что включе- на настройка для автоматического перераспределения ведущих реплик, но это не рекомендуется) после потери статуса ведущей реплики, например, в случае сбоя или останова брокера. А значит, ведущие реплики запросто могут стать не- сбалансированными. Выбор предпочтительной реплики — безопасная и простая операция, так что стоит в первую очередь выполнить его и посмотреть, не ис- чезнет ли проблема.
    Если.число.недореплицированных.разделов.меняется.или.оно.постоянно,.но.от- ключенных.брокеров.нет,.то.дело.обычно.в.проблеме.с.производительностью.кла- стера..Искать.причины.подобных.проблем.довольно.сложно.из-за.их.разнообразия,.
    но.существует.алгоритм.из.нескольких.шагов,.с.помощью.которого.можно.сузить.
    список.возможных.до.наиболее.вероятных..Первый.шаг.—.попытаться.выяснить,.
    связана.проблема.с.отдельным.брокером.или.со.всем.кластером..Иногда.ответить.
    на.этот.вопрос.непросто..Если.недореплицированные.разделы.находятся.на.одном.
    брокере,.то.обычно.причина.проблемы.именно.в.нем.и.ошибка.указывает.на.то,.что.
    у.других.брокеров.возникают.проблемы.при.репликации.сообщений.с.него.
    Если.недореплицированные.разделы.есть.на.нескольких.брокерах,.дело.может.быть.
    в.проблеме.с.кластером.или.с.отдельным.брокером,.поскольку.у.одного.из.брокеров.

    248 Глава 10 • Мониторинг Kafka могут.возникнуть.недоразумения.с.репликацией.сообщений.из.всех.других.мест.
    и.придется.выяснять,.о.каком.именно.брокере.идет.речь..Для.этого.можно,.на- пример,.получить.список.недореплицированных.разделов.кластера.и.посмотреть,.
    не.относятся.ли.все.недореплицированные.разделы.к.одному.брокеру..А.вывести.
    список.недореплицированных.разделов.можно.с.помощью.утилиты.
    kafka-topics.sh
    ,.
    которую.мы.подробно.обсуждали.в.главе.9.
    Например,.выведем.список.недореплицированных.разделов.кластера:
    # kafka-topics.sh --zookeeper zoo1.example.com:2181/kafka-cluster --describe
    --under-replicated
    Topic: topicOne Partition: 5 Leader: 1 Replicas: 1,2 Isr: 1
    Topic: topicOne Partition: 6 Leader: 3 Replicas: 2,3 Isr: 3
    Topic: topicTwo Partition: 3 Leader: 4 Replicas: 2,4 Isr: 4
    Topic: topicTwo Partition: 7 Leader: 5 Replicas: 5,2 Isr: 5
    Topic: topicSix Partition: 1 Leader: 3 Replicas: 2,3 Isr: 3
    Topic: topicSix Partition: 2 Leader: 1 Replicas: 1,2 Isr: 1
    Topic: topicSix Partition: 5 Leader: 6 Replicas: 2,6 Isr: 6
    Topic: topicSix Partition: 7 Leader: 7 Replicas: 7,2 Isr: 7
    Topic: topicNine Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1
    Topic: topicNine Partition: 3 Leader: 3 Replicas: 2,3 Isr: 3
    Topic: topicNine Partition: 4 Leader: 3 Replicas: 3,2 Isr: 3
    Topic: topicNine Partition: 7 Leader: 3 Replicas: 2,3 Isr: 3
    Topic: topicNine Partition: 0 Leader: 3 Replicas: 2,3 Isr: 3
    Topic: topicNine Partition: 5 Leader: 6 Replicas: 6,2 Isr: 6
    #
    В.этом.примере.общий.для.всех.брокер.под.номером.2..Это.указывает.на.то,.что.
    у.него.есть.проблемы.с.репликацией.сообщений,.поэтому.имеет.смысл.сосредо- точиться.на.нем..Если.общего.брокера.в.списке.не.видно,.то.проблема,.вероятнее.
    всего,.с.кластером.в.целом.
    Проблемы уровня кластера
    Проблемы.с.кластером.обычно.относятся.к.одной.из.двух.категорий:
    ‰
    ‰
    дисбаланс.нагрузки;
    ‰
    ‰
    исчерпание.ресурсов.
    Источник.первой.из.них.—.дисбаланса.разделов.или.ведущих.реплик.—.найти.
    нетрудно,.но.решить.ее.может.оказаться.сложно..Для.диагностики.от.брокеров.
    кластера.понадобятся.данные.по.следующим.показателям:
    ‰
    ‰
    количество.разделов;
    ‰
    ‰
    количество.ведущих.разделов;
    ‰
    ‰
    суммарная.по.всем.темам.входящая.скорость.передачи.данных.[байт/с];
    ‰
    ‰
    суммарная.по.всем.темам.исходящая.скорость.передачи.данных.[байт/с];
    ‰
    ‰
    суммарная.частота.входящих.сообщений.по.всем.темам.

    Показатели брокеров Kafka 249
    Изучите.эти.показатели..В.идеально.сбалансированном.кластере.они.будут.при- мерно.одинаковыми.для.всех.брокеров.кластера,.как.в.табл..10.2.
    Таблица 10.2. Показатели использования кластера
    Брокер
    Раздел
    Ведущая реплика
    Входящих байтов,
    Мбайт/с
    Исходящих байтов,
    Мбайт/с
    1 100 50 3,56 9,45 2
    101 49 3,66 9,25 3
    100 50 3,23 9,82
    Как.видите,.все.брокеры.получают.примерно.одинаковый.объем.входящего.тра- фика..В.предположении,.что.вы.уже.выбрали.предпочтительную.реплику,.сильное.
    отклонение.указывает.на.дисбаланс.трафика.в.кластере..Для.решения.этой.проблемы.
    необходимо.переместить.разделы.с.более.нагруженных.брокеров.на.менее.нагру- женные..Сделать.это.можно.с.помощью.утилиты.
    kafka-reassign-partitions.sh
    ,.
    описанной.в.главе.9.
    Вспомогательные утилиты для балансировки кластера
    Сами брокеры Kafka не позволяют автоматически перераспределять разделы в кластере. Это значит, что балансировка нагрузки в нем превращается в изну- рительный процесс просмотра длинных списков показателей в ручном режиме и попыток найти удачное распределение реплик. Чтобы упростить его, в не- которых организациях были разработаны специальные автоматизированные утилиты. Одна из них — утилита kafka-assigner, размещенная компанией LinkedIn в репозитории с открытым исходным кодом kafka-tools на GitHub (https://github.com/
    linkedin/kafka-tools). Эту возможность содержат и некоторые коммерческие пред- ложения по поддержке Kafka.
    Еще.одна.распространенная.проблема.с.производительностью.кластера.—.превы- шение.пределов.возможностей.брокеров.по.обслуживанию.запросов..Замедлить.
    работу.могут.различные.узкие.места,.среди.которых.наиболее.часто.встречаются.
    CPU,.дисковый.ввод/вывод,.пропускная.способность.сети..К.ним.не.относится.
    переполнение.дисков,.поскольку.брокеры.работают.нормально.вплоть.до.запол- нения.диска,.после.чего.происходит.внезапный.отказ..Для.диагностики.подобных.
    проблем.существует.множество.показателей,.которые.можно.отслеживать.на.уров- не.операционной.системы,.в.том.числе:
    ‰
    ‰
    использование.CPU;
    ‰
    ‰
    пропускная.способность.сети.на.вход;
    ‰
    ‰
    пропускная.способность.сети.на.выход;
    ‰
    ‰
    среднее.время.ожидания.диска;
    ‰
    ‰
    процент.использования.диска.

    250 Глава 10 • Мониторинг Kafka
    Исчерпание.любого.из.этих.ресурсов.будет.проявляться.одинаково.—.в.виде.недо- реплицированных.разделов..Важно.не.забывать,.что.процесс.репликации.брокеров.
    работает.точно.так.же,.как.и.другие.клиенты.Kafka..В.случае.проблем.с.реплика- цией.у.вашего.кластера.Kafka.становятся.неизбежными.проблемы.с.потреблением.
    и.генерацией.сообщений.у.ваших.заказчиков..Имеет.смысл.выработать.эталонное.
    значение.этих.показателей,.при.котором.кластер.работает.должным.образом,.после.
    чего.задать.пороговые.значения,.которые.указывали.бы.на.возникновение.пробле- мы.задолго.до.исчерпания.ресурсов..Не.помешает.также.понаблюдать.за.тенден- циями.их.изменения.при.росте.поступающего.в.кластер.трафика..Если.говорить.
    о.показателях.брокеров.Kafka,.то.суммарная.по.всем.темам.исходящая.скорость.
    передачи.данных.в.байтах.(
    All
    Topics
    Bytes
    In
    Rate
    ).отлично.иллюстрирует.ис- пользование.кластера.
    Проблемы уровня хоста
    Если.проблемами.с.производительностью.Kafka.охвачен.не.весь.кластер.—.они.
    возникают.на.одном.или.двух.брокерах,.то.имеет.смысл.взглянуть.на.соответству- ющий.сервер.и.разобраться,.чем.он.отличается.от.остального.кластера..Подобные.
    проблемы.делятся.на.следующие.общие.категории:
    ‰
    ‰
    отказы.аппаратного.обеспечения;
    ‰
    ‰
    конфликты.между.процессами;
    ‰
    ‰
    различия.локальных.настроек.
    Типичные серверы и проблемы
    Сервер и его операционная система — сложный механизм из тысяч компонентов, в любом из которых может возникнуть проблема, приводящая к полному отказу или просто снижению производительности. Охватить в нашей книге все воз- можные сбои нереально — на эту тему уже написано множество огромных томов и все время создаются новые. Но в наших силах обсудить некоторые наиболее распространенные из них. В этом разделе мы сосредоточимся на проблемах с типичным сервером под управлением операционной системы Linux.
    Сбои.аппаратного.обеспечения.—.вещь.очевидная,.при.этом.сервер.просто.перестает.
    работать,.а.снижение.производительности.бывает.вызвано.менее.очевидными.про- блемами..Обычно.они.представляют.собой.случайным.образом.возникающие.ошиб- ки,.при.которых.система.продолжает.работать,.но.менее.эффективно..В.их.числе.
    сбойные.участки.памяти,.обнаруженные.системой.и.требующие.обхода,.вследствие.
    чего.снижается.общий.доступный.объем.памяти..Аналогичная.ситуация.может.
    возникнуть.с.CPU..Для.решения.подобных.проблем.следует.использовать.возмож- ности,.предоставляемые.аппаратным.обеспечением,.например,.интеллектуальный.

    Показатели брокеров Kafka 251
    интерфейс.управления.платформой.(intelligent.platform.management.interface,.
    IPMI).для.мониторинга.состояния.аппаратного.обеспечения..При.наличии.про- блемы.вы.сможете.с.помощью.утилиты.dmesg,.отображающей.буфер.ядра,.увидеть.
    поступающие.в.консоль.системы.журнальные.сообщения.
    Более.распространенный.тип.аппаратного.сбоя,.приводящий.к.снижению.произво- дительности.Kafka,.—.отказ.диска..Apache.Kafka.необходимы.диски.для.сохранения.
    сообщений,.так.что.производительность.производителей.напрямую.связана.со.
    скоростью.фиксации.дисками.этих.операций.записи..Любые.отклонения.в.работе.
    дисков.выражаются.в.проблемах.с.производительностью.производителей.и.по- токов.извлечения.данных.из.реплик..Именно.последнее.обстоятельство.приводит.
    к.образованию.недореплицированных.разделов..Поэтому.важно.постоянно.отсле- живать.состояние.дисков.и.быстро.решать.возникающие.проблемы.
    Одна паршивая овца
    Отказ одного-единственного диска на одном-единственном брокере может свести на нет производительность всего кластера. Дело в том, что клиенты-произво- дители подключаются ко всем брокерам, на которых располагаются ведущие разделы для темы, а если вы следовали рекомендациям, то эти разделы будут равномерно распределены по всему кластеру. Ухудшение работы одного-един- ственного брокера и замедление запросов производителей приведет к отрица- тельному обратному воздействию на производители и замедлению запросов ко всем брокерам.
    Прежде.всего.отслеживайте.информацию.о.состоянии.дисков.с.помощью.IPMI.или.
    другого.интерфейса.аппаратного.обеспечения..Кроме.того,.запустите.в.операцион- ной.системе.утилиты.SMART.(self-monitoring,.analysis.and.reporting.technology.—.
    технология.автоматического.мониторинга,.анализа.и.оповещения).для.мони- торинга.и.регулярного.тестирования.дисков..Благодаря.им.вы.заранее.узнаете.
    о.надвигающихся.отказах..Важно.также.следить.за.контроллером.диска,.особенно.
    если.у.него.есть.функциональность.RAID,.вне.зависимости.от.того,.используете.
    вы.аппаратный.RAID.или.нет..У.многих.контроллеров.имеется.встроенный.кэш,.
    используемый.только.при.нормальном.состоянии.контроллера.и.работающей.
    резервной.батарее.(battery.backup.unit,.BBU)..Отказ.BBU.может.привести.к.от- ключению.кэша.и.снижению.производительности.диска.
    Передача.данных.по.сети.—.еще.одна.сфера,.в.которой.частичные.сбои.могут.вы- звать.проблемы..Некоторые.из.них.вызваны.неполадками.в.аппаратном.обеспече- нии,.например,.испорченным.сетевым.кабелем.или.коннектором..Некоторые.связа- ны.с.настройками.на.стороне.сервера.или.ближе.по.конвейеру,.в.сетевом.аппаратном.
    обеспечении..Проблемы.настройки.сети.также.могут.выразиться.в.проблемах.
    операционной.системы,.например,.недостаточном.размере.сетевых.буферов.или.
    ситуации,.когда.слишком.много.сетевых.подключений.требуют.слишком.большой.

    252 Глава 10 • Мониторинг Kafka доли.общего.объема.памяти..Один.из.ключевых.индикаторов.в.этой.сфере.—.число.
    зафиксированных.на.сетевых.интерфейсах.ошибок..Если.это.число.растет,.то,.ве- роятно,.имеется.нерешенная.проблема.
    Если.аппаратных.проблем.нет,.то.часто.имеет.смысл.поискать.работающее.в.той.же.
    системе.другое.приложение,.которое.потребляет.ресурсы.и.затрудняет.работу.
    брокера.Kafka..Это.может.быть.установленное.по.ошибке.приложение.или.про- цесс,.например.мониторинговый.агент,.который,.как.предполагается,.работает,.но.
    на.деле.испытывает.какие-то.проблемы..Воспользуйтесь.системными.утилитами,.
    например.
    top
    ,.для.поиска.процессов,.которые.используют.больше.процессорного.
    времени.или.оперативной.памяти,.чем.ожидается.
    Если.все.возможности.исчерпаны,.а.вы.так.и.не.нашли.причину.ненормальной.
    работы.конкретного.хоста,.то,.вероятно,.существует.разница.в.настройках.по.срав- нению.или.с.брокером,.или.самой.системой..Учитывая.количество.приложений,.
    работающих.на.любом.сервере,.и.количество.настроек.каждого.из.них,.поиск.раз- личий.—.поистине.титаническая.работа..Поэтому.так.важно.использовать.системы.
    управления.настройками,.такие.как.Chef.(
    https://www.chef.io/
    ).или.Puppet.(
    https://
    puppet.com
    ),.для.поддержания.согласованности.настроек.во.всех.ваших.операци- онных.системах.и.приложениях,.включая.Kafka.
    Показатели брокеров
    Помимо.недореплицированных.разделов.есть.и.другие.показатели.брокера.в.це- лом,.которые.желательно.отслеживать..Хотя.не.обязательно.задавать.пороговые.
    значения.оповещения.для.всех.них,.они.служат.источником.ценной.информации.
    о.брокерах.и.кластере..Их.желательно.включать.во.все.создаваемые.вами.панели.
    инструментов.мониторинга.
    Признак текущего контроллера
    Показатель.«признак текущего контроллера».(active.controller.count).указывает,.
    является.ли.данный.брокер.текущим.контроллером.кластера..Он.может.принимать.
    значения.0.и.1,.где.1.указывает.на.то,.что.данный.брокер.сейчас.является.контрол- лером..В.любой.момент.контроллером.может.быть.только.один.брокер,.и.наобо- рот.—.какой-то.один.брокер.всегда.обязан.быть.контроллером.кластера..Если.два.
    брокера.утверждают,.что.являются.текущим.контроллером.кластера,.то.имеется.
    проблема:.поток.выполнения.контроллера.не.завершил.работу.как.полагается,.а.за- вис..Вследствие.этого.может.оказаться.невозможно.выполнять.административные.
    задачи,.например,.перемещения.разделов,.должным.образом..Чтобы.исправить.
    ситуацию,.необходимо.как.минимум.перезапустить.оба.брокера..Однако.в.случае.
    появления.лишнего.контроллера.в.кластере.при.контролируемом.останове.броке- ров.зачастую.возникают.проблемы.(подробности.относительно.признака.текущего.
    контроллера.смотрите.в.табл..10.3).

    Показатели брокеров Kafka 253
    Таблица 10.3. Показатель «признак текущего контроллера»
    Показатель
    Признак текущего контроллера
    Управляемый.компонент.(MBean).JMX
    kafka.controller:type=KafkaController,.
    name=ActiveControllerCount
    Диапазон.значений
    0.или.1
    Если.ни.один.из.брокеров.не.претендует.на.звание.контроллера.кластера,.послед- ний.не.сможет.должным.образом.реагировать.на.изменения.состояния,.включая.
    создание.тем/разделов.и.сбои.брокеров..В.подобном.случае.для.выяснения.того,.
    почему.потоки.выполнения.контроллеров.не.работают.как.полагается,.необходимо.
    провести.расследование..К.такой.ситуации.может.привести,.например,.нарушение.
    связности.сети.с.кластером.ZooKeeper..После.исправления.лежащей.в.его.основе.
    проблемы.имеет.смысл.перезапустить.все.брокеры.кластера.для.сброса.состояния.
    потоков.выполнения.контроллеров.
    Коэффициент простоя обработчиков запросов
    Kafka.использует.два.пула.потоков.выполнения.для.обработки.всех.запросов.кли- ентов:.сетевые.потоки.и.обработчики.запросов..Сетевые.потоки.отвечают.за.чтение.
    данных.и.их.запись.в.клиенты.по.сети..Это.не.требует.больших.вычислительных.
    затрат,.то.есть.шансы.исчерпать.ресурсы.сетевых.потоков.невелики..Потоки.же.об- работчиков.запросов.отвечают.за.обслуживание.самих.запросов.клиентов,.к.которо- му.относятся.чтение.сообщений.с.диска.или.их.запись.на.диск..Следовательно,.при.
    повышении.загруженности.брокеров.влияние.на.этот.пул.потоков.существенно.
    возрастает.(подробности.о.коэффициенте.простоя.обработчиков.запросов.смотрите.
    в.табл..10.4).
    Таблица 10.4. Коэффициент простоя обработчиков запросов
    Показатель
    Признак текущего контроллера
    Управляемый.компонент.
    (MBean).JMX
    kafka.server:type=KafkaRequestHandlerPool,..
    name=RequestHandlerAvgIdlePercent
    Диапазон.значений
    Число.с.плавающей.запятой.между.0.и.1.включительно
    Разумное использование потоков
    Может показаться, что вам понадобятся сотни потоков обработчиков запросов, однако на деле нет необходимости задавать в настройках больше потоков, чем процессоров на брокере. Apache Kafka весьма разумно использует обработчики запросов, выгружая в буфер-чистилище запросы, обработка которых займет много времени. Это применяется, в частности, при ограничениях на запросы в виде квот или в случае, когда требуется более одного подтверждения запроса производителя.

    254 Глава 10 • Мониторинг Kafka
    Показатель.«коэффициент.простоя.обработчиков.запросов».отражает.долю.вре- мени.(в.процентах),.в.течение.которого.обработчики.запросов.не.используются..
    Чем.меньше.это.значение,.тем.сильнее.загружен.брокер..По.нашему.опыту,.коэф- фициент.простоя.меньше.20.%.указывает.на.потенциальную.проблему,.а.меньше.
    10.%.—.на.возникшую.проблему.с.производительностью..Помимо.слишком.мало- мощного.кластера.существует.две.возможные.причины.повышенного.коэффици- ента.использования.потоков.пула..Первая.—.в.пуле.недостаточно.потоков..Вообще.
    говоря,.число.потоков.обработчиков.запросов.должно.быть.равно.числу.процессо- ров.системы,.включая.процессоры.с.технологией.hyper-threading.
    Вторая.часто.встречающаяся.причина.—.выполнение.потоками.ненужной.работы.
    для.каждого.запроса..До.версии.Kafka.0.10.поток.обработчика.запросов.отвечал.за.
    распаковку.пакетов.всех.входящих.запросов,.проверку.сообщений.и.назначение.
    смещений,.а.также.дальнейшую.упаковку.пакета.сообщения.со.смещениями.перед.
    записью.на.диск..Осложняли.ситуацию.синхронные.блокировки.всех.методов.
    сжатия..В.версии.0.10.появился.новый.формат.сообщений.с.относительными.
    смещениями.в.пакетах.сообщений..Это.значит,.что.производители.новых.версий.
    задают.относительные.смещения.перед.отправкой.пакетов.сообщений,.благо- даря.чему.брокер.может.пропустить.шаг.распаковки.пакета.сообщений..Одно.из.
    важнейших.усовершенствований,.которое.вы.можете.внести.в.свою.систему,.—.
    обеспечение.поддержки.клиентами.производителей.и.потребителей.формата.со- общений.0.10.и.изменение.версии.формата.сообщений.на.брокерах.тоже.на.0.10..
    Это.приведет.к.колоссальному.снижению.использования.потоков.обработчиков.
    запросов.
    Суммарная входящая скорость передачи данных
    Суммарная.по.всем.темам.входящая.скорость.передачи.данных,.выраженная.
    в.байтах.в.секунду,.может.оказаться.полезной.в.качестве.показателя.количества.
    сообщений,.получаемых.брокерами.от.клиентов-производителей..Этот.показатель.
    удобен.при.определении.того,.когда.нужно.расширять.кластер.или.выполнять.дру- гие.работы,.связанные.с.масштабированием..Не.помешает.вычислить.его.и.в.случае,.
    когда.один.из.брокеров.кластера.получает.больше.трафика,.чем.другие,.что.может.
    говорить.о.необходимости.перераспределения.разделов.кластера.(подробности.
    в.табл..10.5).
    1   ...   27   28   29   30   31   32   33   34   ...   39


    написать администратору сайта