Назад | Перейти на главную страницу

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

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

# 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

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

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

Хотя это старый пост, отвечаю сейчас, потому что я знал, что пороговые значения 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 минут CPU был недогружен на 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, чтобы узнать, как рассчитываются средние значения нагрузки («тройки LA») и насколько они подходят для использования в качестве показателей планирования емкости.

Загрузка 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.

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

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

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

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

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

Чтобы расширить ответ 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