Какие предупреждения и критические значения использовать для check_load?


13

Прямо сейчас я использую эти значения:

# y = c * p / 100
# y: nagios value
# c: number of cores
# p: wanted load procent

# 4 cores
# time        5 minutes    10 minutes     15 minutes
# warning:    90%          70%            50%
# critical:   100%         80%            60%
command[check_load]=/usr/local/nagios/libexec/check_load -w 3.6,2.8,2.0 -c 4.0,3.2,2.4

Но эти значения просто выбраны почти случайно.

У кого-нибудь есть проверенные значения?


2
Я думаю, что НЕТ standardили testedценность. Это зависит от вашей ожидаемой нагрузки на сервер. Если вы ожидаете высокую нагрузку, вы должны увеличить значения. В противном случае ваш сервер всегда будет в критическом состоянии.
Халед

Да, это моя проблема. Я постоянно получаю критические уведомления. Должен ли я умножить все на 3?
Сандра

Ответы:


9

Загрузка Linux на самом деле проста. Каждое из средних значений загрузки является суммой всех средних загрузок ядра. То есть.

 1 min load avg = load_core_1 + load_core_2 + ... + load_core_n
 5 min load avg = load_core_1 + load_core_2 + ... + load_core_n
15 min load avg = load_core_1 + load_core_2 + ... + load_core_n

где 0 < avg load < infinity.

Таким образом, если нагрузка на 4-ядерный сервер равна 1, то это означает, что каждое ядро ​​используется на 25% или одно ядро ​​на 100% под нагрузкой. Нагрузка 4 означает, что все 4 ядра находятся под нагрузкой 100%. Загрузка> 4 означает, что серверу нужно больше ядер.

check_load теперь есть

 -r, --percpu
    Divide the load averages by the number of CPUs (when possible)

Это означает, что при использовании вы можете думать о том, что ваш сервер имеет только одно ядро, и, следовательно, записывать процентные доли напрямую, не думая о количестве ядер. С -rпредупреждением и критическими интервалами делается 0 <= load avg <= 1. То есть. Вам не нужно изменять предупреждение и критические значения с сервера на сервер.

ОП имеют 5,10,15 для интервалов. Это не правильно. Это 1,5,15.


27

Хотя это старый пост, отвечая сейчас, потому что я знал, что пороговые значения check_load - головная боль для новичков ..;)

Предупреждающее предупреждение, если ЦП составляет 70% в течение 5 минут, 60% в течение 10 минут, 50% в течение 15 минут. Критическое предупреждение, если ЦП составляет 90% в течение 5 минут, 80% в течение 10 минут, 70% в течение 15 минут.

*command[check_load]=/usr/local/nagios/libexec/check_load -w 0.7,0.6,0.5 -c 0.9,0.8,0.7*

Все мои выводы о загрузке процессора:

Что означает «нагрузка»: Википедия говорит:

Все Unix и Unix-подобные системы генерируют метрику из трех «средних значений загрузки» в ядре. Пользователи могут легко запросить текущий результат из оболочки Unix, выполнив команду uptime:

$ uptime
14:34:03 up 10:43,  4 users,  load average: 0.06, 0.11, 0.09

Из вышеприведенного среднего значения выходной нагрузки: 0.06, 0.11, 0.09означает (в однопроцессорной системе):

  • в последнюю минуту процессор был недогружен на 6%
  • в течение последних 5 минут, процессор был недогружен на 11%
  • в течение последних 15 минут процессор был загружен на 9%

,

$ uptime
14:34:03 up 10:43,  4 users,  load average: 1.73, 0.50, 7.98

Приведенное выше среднее значение нагрузки в 1.73 0.50 7.98системе с одним ЦП как:

  • в последнюю минуту ЦП был перегружен на 73% (1 ЦП с 1,73 запускаемыми процессами, поэтому 0,73 процесса пришлось ждать очереди)
  • в течение последних 5 минут процессор был недогружен на 50% (никакие процессы не должны были ждать поворота)
  • в течение последних 15 минут ЦП был перегружен на 698% (1 ЦП с 7,98 работающими процессами, поэтому 6,98 процессам приходилось ждать очереди)

Расчет порогового значения Nagios:

Для настройки загрузки процессора Nagios, которая включает в себя предупреждение и критическое:

y = c * p / 100

Где: y = nagios value c = number of cores p = wanted load procent

для 4-х ядерной системы:

time      5 min  10 min    15 min
warning:  90%    70%       50%
critical: 100%   80%       60%

command[check_load]=/usr/local/nagios/libexec/check_load -w 3.6,2.8,2.0 -c 4.0,3.2,2.4

Для одноядерной системы:

y = p / 100

Где: y = nagios value p = wanted load procent

time       5 min  10 min    15 min
warning:   70%    60%       50%
critical:  90%    80%       70%

command[check_load]=/usr/local/nagios/libexec/check_load -w 0.7,0.6,0.5 -c 0.9,0.8,0.7

Отличный документ об анализе загрузки процессора, написанный д-ром Гюнтером http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf В этой онлайн-статье д-р Гюнтер исследует ядро ​​UNIX, чтобы узнать, как средняя нагрузка ( «Тройки Лос-Анджелеса») рассчитываются и насколько они подходят в качестве метрик планирования емкости.


2
время должно быть 1,5 и 15 минут
Дальф

3

Если рассматриваемые серверы не имеют асинхронной рабочей нагрузки, где глубина очереди является важной метрикой обслуживания, то ее, честно говоря, даже не стоит отслеживать среднюю нагрузку. Это просто отвлечение от метрик, которые имеют значение, как время обслуживания (время обслуживания и время обслуживания).


2

Хорошее дополнение тоже Nagios - инструмент, такой как Munin или Cacti, он будет отображать различные виды нагрузки, которую испытывает ваш сервер. Будь то load_average, использование процессора, диск io или что-то еще.

Используя эту информацию, легче установить хорошие пороговые значения в Nagios.


1

Знаете ли вы, на какую среднюю нагрузку влияет производительность вашей системы? На моей последней работе у нас были серверы, которые постоянно работали со средней нагрузкой 35-40, но все еще реагировали. Это измерение, вы должны сделать небольшую детективную работу, чтобы получить точные цифры.

Вместо этого вы можете измерить некоторые другие показатели в системе, например, среднее время соединения для SSH или http; это может быть лучшим индикатором того, насколько загружена ваша система.


2
Что означает среднее значение нагрузки, например, 35? Количество ядер процессора влияет на количество?
Сандра

1

Чтобы расширить ответ Invent Sekar: При использовании check_load и процентов я считаю, что вам понадобится аргумент командной строки "-r" вместе с остальными.

Например:

command[check_load]=/usr/local/nagios/libexec/check_load -r -w 0.7,0.6,0.5 -c 0.9,0.8,0.7
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.