Вопрос или проблема
У нас есть серверы Kafka на Red Hat, и использование диска Kafka очень высокое, почти 100%.
Мы наблюдаем по команде sar, что значения rd_sec/s и wr_sec/s высокие.
Вопрос: как мы можем определить, превышают ли эти значения порог?
Диск Kafka — это RAID 10 с размером 10 ТБ.
Итак, как мы можем определить порог для операций чтения и записи на диск?
Например, можем ли мы сказать, что значения больше 1,000,000 rd_sec/s и wr_sec/s считаются высокими?
sar -d -p | grep sda
04:05:24 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
04:05:41 PM sda 496.00 82624.00 0.00 166.58 49.43 93.84 2.02 100.10
04:05:42 PM sda 3686.00 90528.00 2877784.00 805.29 46.88 14.00 0.27 100.00
04:05:43 PM sda 644.00 106208.00 10576.00 181.34 49.16 71.65 1.55 100.10
04:05:44 PM sda 493.00 81016.00 328.00 165.00 47.27 89.59 2.03 100.00
04:05:45 PM sda 1515.00 257952.00 2944.00 172.21 29.20 26.59 0.66 100.00
04:05:46 PM sda 2202.00 366560.00 0.00 166.47 18.77 8.12 0.45 100.00
04:05:47 PM sda 4262.00 187016.00 2784160.00 697.13 41.59 7.48 0.23 100.10
04:05:48 PM sda 239.00 38144.00 0.00 159.60 49.27 163.82 4.18 100.00
04:05:49 PM sda 468.00 77872.00 968.00 168.46 47.61 142.10 2.14 100.00
04:05:50 PM sda 2185.00 368568.00 0.00 168.68 19.22 9.47 0.46 100.00
04:05:51 PM sda 2273.00 369520.00 0.00 162.57 20.25 8.96 0.44 100.00
04:05:52 PM sda 2331.00 260432.00 698720.00 411.48 34.09 11.69 0.43 100.00
04:05:53 PM sda 1492.00 247320.00 0.00 165.76 35.85 28.13 0.67 100.00
04:05:54 PM sda 2375.00 392224.00 840.00 165.50 22.43 9.50 0.42 100.00
04:05:55 PM sda 2686.00 439160.00 0.00 163.50 22.87 8.82 0.38 102.00
04:36:47 PM sda 6114.00 0.00 6078336.00 994.17 0.90 0.15 0.07 40.60
04:36:48 PM sda 4702.00 0.00 4581272.00 974.32 91.61 18.89 0.19 89.60
04:36:49 PM sda 1976.00 0.00 1862880.00 942.75 141.28 69.34 0.51 100.00
04:36:50 PM sda 2020.00 0.00 1894920.00 938.08 141.45 69.36 0.50 100.00
04:36:51 PM sda 2170.00 0.00 2079592.00 958.34 141.36 66.76 0.46 100.00
04:36:52 PM sda 1737.00 8.00 1743312.00 1003.64 141.68 81.23 0.58 100.00
04:36:53 PM sda 1736.00 8.00 1727800.00 995.28 140.98 80.30 0.58 100.00
04:36:54 PM sda 1686.00 0.00 1696664.00 1006.33 141.84 85.52 0.59 100.00
04:36:55 PM sda 1548.00 0.00 1442648.00 931.94 141.37 92.16 0.65 100.00
04:36:56 PM sda 1622.00 0.00 1481184.00 913.18 141.69 87.70 0.62 100.00
Ответ или решение
Настройка пределов для метрик дискового ввода-вывода (I/O) на серверах Kafka Red Hat
Введение
На серверах Kafka под управлением Red Hat вы сталкиваетесь с проблемой высокой загрузки диска, достигающей почти 100%. Данные, полученные с помощью команды sar
, показывают высокие значения метрик rd_sec/s
и wr_sec/s
, что указывает на значительную активность чтения и записи на диск. В данной статье мы рассмотрим, как определить пороговые значения для этих метрик, чтобы лучше оценить состояние производительности вашей системы.
Актуальность задачи
Для оптимизации работы вашей системы важно определить, какие значения rd_sec/s
и wr_sec/s
могут считаться критическими. В противном случае, высокие значения ввода-вывода могут привести к ухудшению производительности и сбоям в работе сервисов, включая Kafka, что в свою очередь негативно скажется на бизнес-процессах.
Анализ данных sar
Ваша команда sar -d -p | grep sda
предоставляет информацию о текущих значения дискового ввода-вывода. Рассмотрим пример вывода:
04:05:50 PM sda 2185.00 368568.00 0.00 168.68 19.22 9.47 0.46 100.00
Здесь:
rd_sec/s
: количество прочитанных секций в секунду (например,368568.00
).wr_sec/s
: количество записанных секций в секунду (например,0.00
, что указывает на отсутствие записи в данный момент).
Пороговые значения для метрик
Для определения пороговых значений необходимо учитывать несколько факторов:
-
Спецификации RAID 10: Ваша система использует RAID 10, который обеспечивает сочетание скорости и отказоустойчивости. RAID 10 распределяет нагрузку между несколькими дисками, что обычно позволяет достигать цифр, значительно превышающих обычные диски.
-
Тип нагрузки: Kafka — это система, ориентированная на потоковые данные, и поэтому может генерировать подобные высокие метрики в условиях активного использования.
-
Среднее значение I/O: Среднее значение считывания и записи за определённый период поможет определить базовый уровень активности. Например, если ваши серверы обычно функционируют с
rd_sec/s
на уровне 200,000, значения более миллиона могут быть рассмотрены как перегрузка.
Рекомендации по установлению порогов
-
Мониторинг и сбор данных: Сбор данных о дисковом вводе-выводе в течение нескольких дней позволит вам определить средние значения и пиковые нагрузки.
-
Определение значений для критических состояний: На основании собранной информации вы можете установить:
- Предупреждение: значения выше 800,000 секций в секунду для
rd_sec/s
иwr_sec/s
. - Критическое состояние: значения выше 1,200,000 секций в секунду для обеих метрик.
- Предупреждение: значения выше 800,000 секций в секунду для
-
Настройка системы оповещений: Реализация системы оповещений на основе пороговых значений поможет вам быстро реагировать на потенциальные проблемы до того, как они повлияют на работу приложения.
-
Регулярный пересмотр установленных значений: Каждые несколько месяцев пересматривайте установленные значения на основе изменения нагрузки и конфигурации системы.
Заключение
Определение пороговых значений для rd_sec/s
и wr_sec/s
на серверах Kafka является важной частью управления производительностью. Понимание типовых значений и этапов мониторинга может помочь предотвратить негативные последствия от высоких значений ввода-вывода. Постоянный анализ и настройка вышеописанных показателей помогут удерживать систему в стабильном и надежном состоянии, что является критичным для эффективного функционирования любой такой системы.