¿Qué valores de advertencia y críticos usar para check_load?

13

En este momento estoy usando estos valores:

# 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

Pero estos valores se seleccionan casi al azar.

¿Alguien tiene algunos valores probados?

Sandra
fuente
2
Creo que no hay standardni testedvalor. Depende de la carga de trabajo de su servidor esperado. Si espera una carga alta, debe aumentar los valores. De lo contrario, su servidor siempre aparecerá en estado crítico.
Khaled
Sí, ese es mi problema. Constantemente recibo notificaciones críticas. ¿Debo multiplicar todo por 3?
Sandra

Respuestas:

9

La carga de Linux es realmente simple. Cada uno de los números promedio de carga es la suma de toda la carga promedio del núcleo. Es decir.

 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

donde 0 < avg load < infinity.

Entonces, si una carga es 1 en un servidor de 4 núcleos, significa que cada núcleo se usa al 25% o un núcleo está al 100% bajo carga. Una carga de 4 significa que los 4 núcleos están bajo una carga del 100%. Una carga de> 4 significa que el servidor necesita más núcleos.

check_load ahora tienen

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

lo que significa que cuando se usa, puede pensar que su servidor tiene un solo núcleo y, por lo tanto, escribir el porcentaje de fracciones directamente sin pensar en el número de núcleos. Con -rla advertencia y se hacen intervalos críticos 0 <= load avg <= 1. Es decir. no tiene que modificar su advertencia y sus valores críticos de un servidor a otro.

OP tiene 5,10,15 para intervalos. Eso está mal. Es 1,5,15.

d2xdt2
fuente
27

Aunque es una publicación antigua, responde ahora porque sabía que los valores de umbral de check_load son un gran dolor de cabeza para los novatos ...;)

Una alerta de advertencia, si la CPU es 70% por 5 minutos, 60% por 10 minutos, 50% por 15 minutos. Una alerta crítica, si la CPU es 90% por 5 minutos, 80% por 10 minutos, 70% por 15 minutos.

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

Todos mis hallazgos sobre la carga de la CPU:

¿Qué quiere decir "la carga": Wikipedia dice:

Todos los sistemas Unix y similares a Unix generan una métrica de tres números de "promedio de carga" en el núcleo. Los usuarios pueden consultar fácilmente el resultado actual desde un shell de Unix ejecutando el comando uptime:

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

Del promedio de carga de salida anterior: 0.06, 0.11, 0.09significa (en un sistema de CPU única):

  • durante el último minuto, la CPU estaba subcargada en un 6%
  • durante los últimos 5 minutos, la CPU se ha descargado un 11%
  • durante los últimos 15 minutos, la CPU se subcargó 9%

.

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

El promedio de carga anterior de 1.73 0.50 7.98un sistema de CPU única como:

  • durante el último minuto, la CPU se sobrecargó en un 73% (1 CPU con 1.73 procesos ejecutables, por lo que 0.73 procesos tuvieron que esperar un turno)
  • durante los últimos 5 minutos, la CPU se subcargó al 50% (ningún proceso tuvo que esperar un turno)
  • durante los últimos 15 minutos, la CPU se sobrecargó 698% (1 CPU con 7.98 procesos ejecutables, por lo que 6.98 procesos tuvieron que esperar un turno)

Cálculo del valor umbral de Nagios:

Para la configuración de Nagios CPU Load, que incluye advertencia y crítica:

y = c * p / 100

Dónde: y = nagios value c = number of cores p = wanted load procent

para un sistema de 4 núcleos:

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

Para un sistema de núcleo único:

y = p / 100

Dónde: 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

Un gran libro blanco sobre el análisis de la carga de la CPU por el Dr. Gunther http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf En este artículo en línea, el Dr. Gunther profundiza en el núcleo de UNIX para averiguar cómo promedios de carga (el "LA Triplets") se calculan y qué tan apropiadas son como métricas de planificación de capacidad.

Inventar Sekar
fuente
2
el tiempo debe ser de 1,5 y 15 minutos
desde el
3

A menos que los servidores en cuestión tengan una carga de trabajo asíncrona donde la profundidad de la cola sea la métrica de servicio importante para administrar, honestamente ni siquiera vale la pena monitorear el promedio de carga. Es solo una distracción de las métricas que importan, como el tiempo de servicio (tiempo de servicio y tiempo de servicio).

cagenut
fuente
2

Un buen complemento también Nagios es una herramienta como Munin o Cacti, que graficarán los diferentes tipos de carga de trabajo que está experimentando su servidor. Ya se trate de load_average, uso de CPU, disco io u otra cosa.

Con esta información es más fácil establecer buenos valores de umbral en Nagios.

nenne
fuente
1

¿Sabe a qué promedio de carga afecta el rendimiento de su sistema? Tuvimos servidores en mi último trabajo que permanecían consistentemente en un promedio de carga de 35-40, pero aún respondían. Es una medida que debe hacer un poco de trabajo de detective para obtener números precisos.

Es posible que desee medir otras métricas en el sistema, como el tiempo de conexión promedio para SSH o http; Esto podría ser un mejor indicador de la carga de su sistema.

Peter Grace
fuente
2
¿Qué significa realmente un promedio de carga de, por ejemplo, 35? ¿El número de núcleos de CPU hace una diferencia en el número?
Sandra
1

Para extender la respuesta de Invent Sekar: Cuando use check_load y porcentajes, creo que necesitará el argumento de línea de comando "-r" junto con los demás.

Por ejemplo:

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