среда, 14 августа 2013 г.

Расчет критических значений Load Average для системы мониторинга сервера

Сегодня подкручивал настройки Nagios и решил добавить статью по расчету значений лимитов load average для различных конфигураций серверов. Чтобы понимать суть load average я советую прочесть эту статью.

Поскольку лимиты load average зависят от количества доступных ядер процессора, то у различных серверов будут значения будут различаться. Наиболее распространенные варианты конфигурации процессоров:
  • 1 физическое ядро
  • 2 физических ядра
  • 2 физических ядра + hyperthreading (4 виртуальных ядра)
  • 4 физических ядра
  • 4 физических ядра + hyperthreading (8 виртуальных ядер)
Я не буду рассматривать варианты дальше, поскольку там все аналогично. Для себя я определил следующие лимиты, которые по моему мнению не приводят к заметному снижению производительности сервера относительно процессора.

State/Load Average1 min5 min15 min
WarningCPU cores * 2CPU cores * 1.5CPU cores * 1.25
CriticalCPU cores * 4CPU cores * 2CPU cores * 1.5

Поскольку ядро процессора, которое эмулируется hyperthreading, не является полноценным, то такие ядра я исключаю из расчета. Чтобы узнать свое количество физических ядер вы можете выполнить этот скрипт

#!/bin/bash
if [ `grep -c processor /proc/cpuinfo` != 1 ]; then
    grep 'core id' /proc/cpuinfo | sort | uniq | wc -l
else
    echo 1
fi

Готовые значения лимитов для плагина check_load из состава Nagios.

  • Single core: check_load -w 2,1.5,1.25 -c 4,2,1.5
  • Dual core: check_load -w 4,3,2.5 -c 8,4,3
  • Quad core: check_load -w 8,6,5 -c 16,8,6

Комментариев нет:

Отправить комментарий