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

  • Название Управляемый компонент (MBean) JMX

  • Показатели недореплицированных разделов

  • Таблица 10.14.

  • Что такое системная нагрузка

  • Таблица 10.15.

  • Почему бы не воспользоваться ProducerRequestMetrics

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


    Скачать 7.59 Mb.
    НазваниеApache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly
    Дата21.06.2022
    Размер7.59 Mb.
    Формат файлаpdf
    Имя файлаApache Kafka. Потоковая обработка и анализ данных.pdf
    ТипДокументы
    #609074
    страница33 из 39
    1   ...   29   30   31   32   33   34   35   36   ...   39
    263
    количество.файлов.сегментов.журнала.на.диске.для.данного.раздела..Он.удобен.
    для.отслеживания.ресурсов,.как.и.показатель.размера.разделов.
    Таблица 10.13. Показатели запроса
    Название
    Управляемый компонент (MBean) JMX
    Размер.раздела kafka.log:type=Log,name=Size,topic=TOPICNAME,partition=0
    Количество.сегментов.
    журнала kafka.log:type=Log,name=NumLogSegments,topic=.
    TOPICNAME,partition=0
    Начальное.смещение.
    журнала kafka.log:type=Log,name=LogEndOffset,topic=.
    TOPICNAME,partition=0
    Конечное.смещение.
    журнала kafka.log:type=Log,name=LogStartOffset,topic=.
    TOPICNAME,partition=0
    Показатели.конечного.и.начального.смещения.журнала.представляют.собой.мак- симальное.и.минимальное.смещения.сообщений.в.данном.разделе.соответственно..
    Следует.отметить,.однако,.что.разница.между.этими.числами.не.обязательно.соот- ветствует.числу.сообщений.в.разделе,.поскольку.сжатие.журналов.может.вызвать.
    появление.«пропущенных».смещений,.удаленных.из.раздела.в.результате.посту- пления.более.новых.сообщений.с.тем.же.ключом..При.некоторых.конфигурациях.
    для.разделов.может.оказаться.полезен.мониторинг.этих.смещений..Один.из.по- добных.сценариев.использования.—.обеспечение.более.точного.соответствия.меток.
    даты/времени.смещениям,.благодаря.чему.клиенты-потребители.легко.могут.от- катывать.смещения.на.конкретный.момент.(хотя.благодаря.появившемуся.в.Kafka.
    0.10.1.индексному.поиску.по.времени.это.потеряло.свое.значение).
    Показатели недореплицированных разделов
    Существует показатель уровня раздела, говорящий о том, является ли раздел недореплицированным. В целом он не слишком полезен в повседневной работе из-за очень большого числа требующих отслеживания параметров. Намного легче контролировать количество недореплицированных разделов в масштабах брокера, используя утилиты командной строки (описаны в главе 9) для выявления конкретных недореплицированных разделов.
    Мониторинг JVM
    Помимо.показателей.для.брокера.Kafka.следует.контролировать.стандартный.
    набор.показателей.для.всех.серверов.и.самой.виртуальной.машины.Java.(JVM)..
    Благодаря.этому.вы.сможете.получить.оповещение.о.возникших.проблемных.си- туациях,.например,.росте.активности.сборщика.мусора,.отрицательно.влияющей.
    на.производительность.брокера..Благодаря.им.вы.также.сможете.понять.причину.
    изменения.показателей.далее.по.конвейеру,.в.брокере.

    264 Глава 10 • Мониторинг Kafka
    Сборка мусора
    Для.JVM.критически.важно.наблюдать.за.процессом.сборки.мусора.(GC)..Какие.
    именно.Java-компоненты.необходимо.отслеживать.для.получения.этой.инфор- мации,.очень.зависит.от.используемого.JRE.(Java.Runtime.Environment),.а.также.
    конкретных.настроек.GC..В.табл..10.14.показано,.какие.компоненты.использовать.
    в.случае.JRE.Oracle.Java.1.8.со.сборкой.мусора.G1.
    Таблица 10.14. Показатели сборки мусора G1
    Название
    Управляемый компонент (MBean) JMX
    Полных.циклов.GC
    java.lang:type=GarbageCollector,name=G1.Old.Generation
    Молодых.циклов.GC
    java.lang:type=GarbageCollector,name=G1.Young.Generation
    Обратите.внимание.на.то,.что.в.терминах.сборки.мусора.«старый».(Old).и.«пол- ный».(Full).—.одно.и.то.же..Для.каждого.из.этих.показателей.необходимо.от- слеживать.два.атрибута.—.
    CollectionCount
    .и.
    CollectionTime
    CollectionCount представляет.собой.число.циклов.GC.соответствующего.типа.(полный.или.моло- дой).с.момента.запуска.JVM..
    CollectionTime
    .—.это.продолжительность.времени.
    (в.миллисекундах),.потраченного.на.этот.тип.сборки.мусора.с.момента.запуска.
    JVM..Будучи.по.своей.сути.счетчиками,.эти.показатели.могут.использоваться.си- стемой.показателей.для.вывода.конкретного.числа.циклов.и.времени,.потраченных.
    на.сборку.мусора.за.единицу.времени..Их.можно.применять.также.для.получения.
    средней.длительности.цикла.GC,.хотя.при.нормальном.функционировании.это.
    особой.пользы.не.приносит.
    У.каждого.из.этих.показателей.есть.атрибут.
    LastGcInfo
    ..Это.составное.значение,.
    имеющее.пять.полей.и.содержащее.информацию.о.последнем.цикле.GC.для.опи- санного.компонентом.типа.сборки.мусора..Самое.важное.из.этих.полей.—.значение.
    duration
    ,.указывающее.длительность.последнего.цикла.GC.(в.миллисекундах)..
    Остальные.значения.атрибута.(
    GcThreadCount
    ,.
    id
    ,.
    startTime
    .и.
    endTime
    ).носят.
    информационный.характер.и.не.особо.полезны..Важно.отметить,.что.увидеть.
    длительность.всех.циклов.GC.с.помощью.этого.атрибута.нельзя.в.силу.нерегуляр- ности,.в.частности,.молодых.циклов.GC.
    Мониторинг операционной системы из Java
    JVM.может.предоставить.некоторую.информацию.об.операционной.системе.с.по- мощью.компонента.
    java.lang:type=OperatingSystem
    ..Однако.это.неполная.инфор- мация,.не.отражающая.все,.что.необходимо.знать.о.системе,.на.которой.работает.
    брокер..В.ее.составе.есть.два.полезных.атрибута,.данные.по.которым.можно.собрать.
    тут,.но.непросто.получить.в.операционной.системе:.
    MaxFileDescriptorCount и.
    OpenFileDescriptorCount
    MaxFileDescriptorCount
    .представляет.собой.максимально.
    допустимое.для.JVM.число.открытых.дескрипторов.файлов..
    OpenFileDescriptorCount соответствует.числу.открытых.в.данный.момент.дескрипторов..Дескрипторы.будут.

    Показатели брокеров Kafka 265
    открываться.для.каждого.сегмента.журнала.и.сетевого.подключения,.и.их.число.
    станет.быстро.расти..Если.сетевые.подключения.не.закрываются.должным.образом,.
    то.их.количество,.разрешенное.для.брокера,.быстро.исчерпается.
    Мониторинг ОС
    JVM.не.способна.предоставить.всю.необходимую.нам.информацию.об.операцион- ной.системе..Поэтому.необходимо.собирать.показатели.не.только.от.брокера,.но.
    и.от.самой.операционной.системы..Большинство.систем.мониторинга.предостав- ляют.агенты,.способные.собрать.намного.больше.информации.об.операционной.
    системе,.чем.вам.может.теоретически.понадобиться..Основное,.что.нужно.отсле- живать,.—.использование.ресурсов.CPU,.оперативной.памяти,.дисков,.дисковых.
    операций.ввода/вывода.и.сети.
    Что.касается.использования.CPU,.то.необходимо.как.минимум.следить.за.усред- ненной.загрузкой.системы..Этот.показатель.представляет.собой.отдельное.зна- чение,.отражающее.относительную.загрузку.процессоров..Кроме.того,.он.может.
    пригодиться.для.получения.загрузки.CPU,.разбитой.по.типам..В.зависимости.
    от.метода.сбора.данных.и.конкретной.операционной.системы.вам.могут.быть.до- ступны.все.или.часть.процентных.отношений.следующих.категорий.загрузки.CPU.
    (с.помощью.приведенных.аббревиатур):
    ‰
    ‰ us
    .—.процессорное.время,.потраченное.в.пользовательском.адресном.пространстве;
    ‰
    ‰ sy
    .—.процессорное.время,.потраченное.в.адресном.пространстве.ядра;
    ‰
    ‰ ni
    .—.процессорное.время,.потраченное.на.фоновые.процессы;
    ‰
    ‰ id
    .—.время.бездействия.процессора;
    ‰
    ‰ wa
    .—.время.ожидания.процессором.дисков;
    ‰
    ‰ hi
    .—.процессорное.время,.потраченное.на.обработку.аппаратных.прерываний;
    ‰
    ‰ si
    .—.процессорное.время,.потраченное.на.обработку.программных.прерываний;
    ‰
    ‰ st
    .—.процессорное.время,.потраченное.на.ожидание.гипервизора.
    Что такое системная нагрузка
    Многим известно, что системная нагрузка — это степень использования CPU системы, но немногие знают, как она измеряется. Средняя нагрузка — число ра- ботоспособных процессов, ожидающих выполнения процессором. Linux включает в их число также потоки выполнения, находящиеся в состоянии непрерываемого сна (uninterruptible sleep state), например, ожидающие выполнения дисковых операций. Нагрузка представлена в виде трех чисел: среднего количества за последнюю минуту, последние 5 минут и 15 минут. В системе с одним CPU зна- чение 1 означает, что система загружена на 100 % и какой-нибудь поток всегда ожидает выполнения. В системе с несколькими CPU соответствующее 100%-ной загрузке значение будет равно числу CPU в системе. Например, если в системе
    24 процессора, то средняя нагрузка, равная 24, соответствует 100%-ной загрузке.

    266 Глава 10 • Мониторинг Kafka
    Брокер.Kafka.использует.для.обработки.запросов.значительные.ресурсы.CPU..
    Поэтому.при.мониторинге.Kafka.важно.отслеживать.загрузку.CPU..Учет.опера- тивной.памяти.менее.важен.для.самого.брокера,.поскольку.Kafka.обычно.запуска- ется.с.относительно.небольшим.размером.кучи.JVM..Он.использует.для.функций.
    сжатия.относительно.небольшое.количество.памяти.вне.кучи,.но.бо'льшая.часть.
    системной.памяти.оставляется.для.кэша..Тем.не.менее.лучше.отслеживать.ис- пользование.оперативной.памяти,.чтобы.другие.приложения.не.мешали.брокеру..
    Стоит.также.наблюдать.за.объемом.общей.и.свободной.памяти.подкачки,.чтобы.
    убедиться,.что.эта.память.не.задействуется.
    Что.касается.Kafka,.диск,.безусловно,.важнейшая.подсистема..Все.сообщения.
    сохраняются.на.него,.так.что.производительность.Kafka.сильно.зависит.от.про- изводительности.дисков..Очень.важно.отслеживать.использование.пространства.
    и.индексных.дескрипторов.(индексные.дескрипторы.—.это.объекты.метаданных.
    файлов.и.каталогов.в.файловых.системах.Unix).на.дисках,.чтобы.не.исчерпать.дис- ковое.пространство..Это.особенно.важно.для.разделов,.в.которых.хранятся.данные.
    Kafka..Необходимо.также.следить.за.статистикой.операций.дискового.ввода/выво- да,.чтобы.гарантировать.эффективное.использование.дисков..Следите.по.крайней.
    мере.за.статистикой.дисков,.на.которых.хранятся.данные.Kafka:.числом.операций.
    записи.и.чтения.в.секунду,.средними.размерами.очередей.на.чтение.и.запись,.
    средним.временем.ожидания.и.эффективностью.использования.диска.в.процентах.
    Наконец,.следите.за.использованием.сети.на.брокерах..Этот.показатель.представ- ляет.собой.просто.входящий.и.исходящий.сетевой.трафик,.обычно.указываемый.
    в.битах.в.секунду..Не.забывайте,.что.каждый.входящий.в.брокер.Kafka.бит.означает.
    соответствующее.коэффициенту.репликации.темы.число.битов.исходящих.данных.
    при.отсутствии.потребителей..В.зависимости.от.количества.потребителей.входя- щий.сетевой.трафик.может.оказаться.на.порядки.больше.исходящего..Не.забывайте.
    об.этом.при.задании.пороговых.значений.для.оповещения.
    Журналирование
    Любое.обсуждение.мониторинга.будет.неполным.без.упоминания.журналирова- ния..Подобно.множеству.приложений,.брокер.Kafka.мгновенно.забьет.диск.жур- нальными.сообщениями,.если.только.ему.разрешить..Чтобы.извлечь.из.журналов.
    полезную.информацию,.необходимо.включить.правильные.механизмы.журнали- рования.на.нужных.уровнях..Простая.запись.всех.сообщений.на.уровне.
    INFO
    .даст.
    множество.важной.информации.о.состоянии.брокера..Полезно.будет,.однако,.от- делить.несколько.механизмов.журналирования,.чтобы.получить.более.компактный.
    набор.файлов.журналов.
    Существует.два.механизма.журналирования,.записывающих.информацию.в.от- дельные.файлы.на.диске..Первый.—.
    kafka.controller
    .на.уровне.
    INFO
    ,.он.служит.
    для.получения.информации.конкретно.о.контроллере.кластера..В.каждый.момент.
    времени.только.один.брокер.может.быть.контроллером,.следовательно,.записывать.

    Мониторинг клиентов 267
    в.эти.журналы.данные.будет.всегда.только.один.брокер..Его.информация.включает.
    данные.о.создании.и.изменении.темы,.изменении.состояния.брокера,.а.также.такие.
    операции.кластера,.как.выбор.предпочтительной.реплики.и.перемещения.разде- лов..Второй.механизм.журналирования.—.
    kafka.server.ClientQuotaManager
    ,.тоже.
    уровня.
    INFO
    ..Он.используется.для.отображения.сообщений,.связанных.с.квотами.
    на.операции.генерации.и.потребления..Это.полезная.информация,.но.в.главном.
    файле.журнала.брокера.она.будет.только.мешать.
    Не.помешает.также.занести.в.журнал.информацию.о.состоянии.потоков.сжатия.
    журналов..Не.существует.отдельного.показателя,.отражающего.состояние.этих.по- токов,.и.сбой.сжатия.одного.раздела.может.полностью.застопорить.потоки.сжатия.
    журналов,.причем.пользователь.не.получит.никакого.оповещения.об.этом..Для.вы- вода.информации.о.состоянии.этих.потоков.необходимо.включить.механизмы.
    журналирования.
    kafka.log.LogCleaner
    ,.
    kafka.log.Cleaner
    .и.
    kafka.log.LogClea- nerManager
    .на.уровне.
    DEBUG
    ..Эта.информация.включает.данные.о.сжатии.каждого.
    из.разделов,.включая.размер.и.число.сообщений..При.обычном.функционировании.
    сведений.не.так.уж.много,.так.что.можно.включить.это.журналирование.по.умол- чанию,.не.опасаясь.утонуть.в.информации.
    Будет.полезно.включить.еще.некоторые.виды.журналирования.при.отладке.про- блем.с.Kafka..Например,.
    kafka.request.logger
    ,.на.уровне.
    DEBUG
    .или.
    TRACE
    ..Он.
    заносит.в.журнал.информацию.обо.всех.отправленных.брокеру.запросах..На.уров- не.
    DEBUG
    .данный.журнал.включает.конечные.точки.соединений,.хронометраж.
    запросов.и.сводную.информацию..На.уровне.
    TRACE
    .—.также.информацию.о.теме.
    и.разделе.—.практически.всю.информацию.запроса,.за.исключением.содержимого.
    самого.сообщения..На.любом.из.этих.уровней.он.генерирует.значительный.объем.
    данных,.так.что.включать.его.рекомендуется.только.для.отладки.
    Мониторинг клиентов
    Все.приложения.требуют.мониторинга..У.приложений,.реализующих.клиенты.
    Kafka,.производители.или.потребители,.имеются.соответствующие.показатели..
    В.этом.разделе.мы.будем.говорить.об.официальных.клиентских.библиотеках.Java,.
    хотя.и.в.других.реализациях.должны.быть.доступны.свои.показатели.
    Показатели производителя
    Новый.клиент-производитель.Kafka.существенно.повысил.компактность.имею- щихся.показателей,.сделав.их.доступными.в.виде.атрибутов.небольшого.числа.
    управляемых.компонентов.(mbeans)..А.предыдущая.версия.клиента-производи- теля.(более.не.поддерживаемая).предоставляла.более.подробную.информацию.
    по.большинству.показателей.за.счет.большего.числа.управляемых.компонентов.
    (в.ней.было.больше.процентных.показателей.и.различных.скользящих.средних)..

    268 Глава 10 • Мониторинг Kafka
    В.результате.суммарно.охватывалась.бо'льшая.«площадь.поверхности»,.но.поиск.
    аномальных.значений.был.затруднен.
    Все.показатели.производителя.содержат.идентификатор.клиента-производителя.
    в.названии.компонента..В.приведенных.примерах.он.заменен.на.
    CLIENTID
    ..В.случа- ях,.когда.название.компонента.содержит.идентификатор.брокера,.этот.идентифи- катор.заменен.на.
    BROKERID
    ..Названия.тем.заменены.на.
    TOPICNAME
    ..Пример.приведен.
    в.табл..10.15.
    Таблица 10.15. Управляемые компоненты показателей производителя Kafka
    Название
    Управляемый компонент (MBean) JMX
    В.целом.
    по.производителю kafka.producer:type=producer-metrics,client-id=CLIENTID
    Для.отдельного.
    брокера kafka.producer:type=producer-node-metrics,client-id=.
    CLIENTID,node-id=node-BROKERID
    Для.отдельной.
    темы kafka.producer:type=producer-topic-metrics,client-id=.
    CLIENTID,topic=TOPICNAME
    У.каждого.из.компонентов.показателей.в.табл..10.15.есть.несколько.атрибутов,.
    предназначенных.для.описания.состояния.производителя..Конкретные.наиболее.
    полезные.атрибуты.описаны.в.следующем.разделе..Прежде.чем.двигаться.дальше,.
    убедитесь,.что.хорошо.понимаете.семантику.работы.производителя,.описанную.
    в.главе.3.
    Показатели производителя в целом
    Компоненты.показателей.производителей.в.целом.имеют.атрибуты,.описывающие.
    все,.начиная.с.размеров.пакетов.сообщений.и.заканчивая.использованием.буферов.
    памяти..Хотя.все.эти.показатели.применяются.при.отладке,.лишь.немногие.из.них.
    используются.регулярно.и.лишь.пара.из.этих.немногих.заслуживает.мониторинга.
    и.настройки.оповещений..Обратите.внимание:.хотя.мы.будем.обсуждать.показате- ли,.представляющие.собой.средние.значения.(заканчиваются.на.
    -avg
    ),.существуют.
    также.максимальные.значения.всех.показателей.(заканчиваются.на.
    -max
    ),.полезные.
    лишь.в.некоторых.ситуациях.
    Определенно.имеет.смысл.настроить.оповещение.для.атрибута.
    record-error-rate
    Этот.показатель.всегда.должен.быть.равен.0,.и.если.он.больше.нуля,.значит,.про- изводитель.отменяет.сообщения,.которые.пытается.отправить.брокерам.Kafka..
    Для.производителя.задаются.число.попыток.повтора.и.пауза.между.ними,.по.
    истечении.которых.сообщения,.называемые.тут.записями,.будут.отменяться..
    Можно.также.отслеживать.атрибут.
    record-retry-rate
    ,.но.он.не.так.важен,.как.
    частота.ошибок,.поскольку.повторы.отправки.свидетельствуют.о.нормальном.
    функционировании.

    Мониторинг клиентов 269
    Еще.один.показатель,.для.которого.стоит.настроить.оповещение,.—.
    request- latency-avg
    ..Он.представляет.собой.среднюю.длительность.отправки.запроса.от.
    производителя..Вам.лучше.определить.эталонное.значение.этого.параметра.при.
    нормальном.функционировании.и.установить.оповещение.при.его.превышении..
    Повышение.времени.задержки.запроса.означает.замедление.запросов.от.произ- водителей..Причина.может.быть.в.проблемах.с.сетью.или.на.брокерах..В.любом.
    случае.речь.идет.о.проблеме.с.производительностью,.вызывающей.приостановки.
    и.другие.неполадки.в.приложении-производителе.
    Помимо.этих.важных.показателей.не.помешает.знать.объемы.трафика.отправля- емых.производителем.сообщений..Эту.информацию.можно.получить.в.трех.раз- личных.разрезах.с.помощью.трех.атрибутов..Атрибут.
    outgoing-byte-rate
    .говорит.
    о.трафике.сообщений.в.байтах.в.секунду..
    record-send-rate
    .описывает.трафик.
    в.терминах.числа.сгенерированных.сообщений.в.секунду..Наконец,.
    request-rate позволяет.узнать.число.отправленных.от.производителей.брокерам.запросов.
    в.секунду..И,.конечно,.каждое.сообщение.состоит.из.определенного.числа.байтов..
    Эти.показатели.отнюдь.не.станут.лишними.на.инструментальной.панели.вашего.
    приложения.
    Почему бы не воспользоваться ProducerRequestMetrics?
    Существует компонент для показателя ProducerRequestMetrics, с помощью кото- рого можно получить как процентили задержки запроса, так и несколько скольз- ящих средних частоты запросов. Почему же его не рекомендуется использовать?
    Проблема в том, что этот показатель выдается отдельно для каждого потока производителя. В приложениях, в которых по соображениям производительности используется несколько потоков, согласование этих показателей может оказаться непростой задачей. Обычно достаточно атрибутов, предоставляемых единым общим компонентом для производителя.
    Существуют.также.показатели,.описывающие.размеры.записей,.запросов.и.пакетов..
    С.помощью.
    request-size-avg
    .можно.получить.средний.размер.запросов,.отправля- емых.брокерам.производителями,.в.байтах..С.помощью.
    batch-size-avg
    .—.средний.
    размер.отдельного.пакета.сообщений,.состоящего.по.умолчанию.из.сообщений,.
    предназначенных.для.отдельного.раздела.темы,.в.байтах..
    record-size-avg
    .пока- зывает.средний.размер.отдельной.записи.в.байтах..В.случае.применения.произ- водителя.с.одной.темой.эти.показатели.предоставляют.полезную.информацию.
    о.сгенерированных.сообщениях..Если.используются.производители.с.несколькими.
    темами,.например.MirrorMaker,.их.информативность.снижается..Помимо.этих.трех.
    показателей,.существует.
    records-per-request-avg
    ,.описывающий.среднее.число.
    сообщений.в.отдельном.запросе.от.производителя.
    Последний.из.рекомендуемых.атрибутов.общих.показателей.производителей.—.
    record-queue-time-avg
    ..Он.представляет.собой.среднее.время.(в.миллисекундах),.

    1   ...   29   30   31   32   33   34   35   36   ...   39


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