Que valores críticos e de aviso devem ser usados para check_load?

12

Agora mesmo estou usando esses 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

Mas esses valores são escolhidos quase aleatoriamente.

Alguém tem alguns valores testados?

    
por Sandra 06.12.2010 / 14:45

6 respostas

9

O carregamento do Linux é realmente simples. Cada um dos números avg de carregamento é o somatório de toda a carga média do núcleo. Ou seja,

 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

em que 0 < avg load < infinity .

Portanto, se uma carga for 1 em um servidor de 4 núcleos, isso significa que cada núcleo é usado em 25% ou um núcleo é 100% em carga. Uma carga de 4 significa que todos os 4 núcleos estão abaixo de 100% de carga. Uma carga de > 4 significa que o servidor precisa de mais núcleos.

check_load agora tem

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

, o que significa que, quando usado, você pode pensar em seu servidor como tendo apenas um núcleo e, portanto, gravar diretamente as porcentagens de frações sem pensar no número de núcleos. Com -r , o aviso e os intervalos críticos tornam-se 0 <= load avg <= 1 . Ie. você não precisa modificar seus valores críticos e de aviso de servidor para servidor.

OP tem 5,10,15 para intervalos. Isso esta errado. É 1,5,15.

    
por 07.12.2010 / 12:40
27

Apesar de ser uma postagem antiga, respondendo agora porque eu sabia que valores de limite de check_load são dor de cabeça para os novatos.;)

Um alerta de aviso, se a CPU for 70% por 5min, 60% por 10mins, 50% por 15mins. Um alerta crítico, se a CPU for 90% por 5min, 80% por 10min, 70% por 15min.

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

Todas as minhas descobertas sobre a carga da CPU:

O que significa "o carregamento": Wikipédia diz:

Todos os sistemas Unix e Unix-like geram uma métrica de três números "load average" no kernel. Os usuários podem consultar facilmente o resultado atual de um shell Unix executando o comando uptime:

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

A partir da média de carga de saída acima: 0.06, 0.11, 0.09 significa (em um sistema com uma única CPU):

  • durante o último minuto, a CPU foi underloaded por 6%
  • durante os últimos 5 minutos, a CPU foi underloaded 11%
  • durante os últimos 15 minutos, a CPU foi underloaded 9%

.

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

A média de carregamento acima de 1.73 0.50 7.98 em um sistema de CPU única como:

  • durante o último minuto, a CPU ficou sobrecarregada em 73% (1 CPU com 1,73 processos executáveis, de forma que 0,73 processos tiveram que esperar por um turno)
  • durante os últimos 5 minutos, a CPU foi subcarregada em 50% (nenhum processo teve que esperar por um turno)
  • durante os últimos 15 minutos, a CPU estava sobrecarregada 698% (1 CPU com 7,98 processos executáveis, de modo que 6,98 processos tiveram que esperar por um turno)

Cálculo do valor limite do Nagios:

Para a configuração da carga da CPU do Nagios, que inclui aviso e crítica:

y = c * p / 100

Onde:  %código%  %código%   y = nagios value

para um sistema de quatro 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 um único sistema principal:

c = number of cores

Onde:  %código%   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

Um ótimo white paper sobre a análise de carga de CPU pelo Dr. Gunther link Neste artigo on-line, o Dr. Gunther acessa o kernel do UNIX para descobrir como calculadas as médias (os “TRQ Triplets”) e como são apropriadas como capacidade métricas de planejamento.

    
por 12.10.2012 / 17:26
3

A menos que os servidores em questão tenham uma carga de trabalho assíncrona, em que a profundidade da fila é a métrica de serviço importante a ser gerenciada, então, honestamente, nem vale a pena monitorar a média de carga. É apenas uma distração das métricas que importam como tempo de serviço (tempo de serviço e tempo de serviço).

    
por 06.12.2010 / 16:15
2

Um bom complemento também ao Nagios é uma ferramenta como o Munin ou o Cacti, eles irão representar graficamente os diferentes tipos de carga de trabalho que seu servidor está experimentando. Seja load_average, cpu usage, disk io ou outra coisa.

Usando essa informação, é mais fácil definir bons valores de limiar no Nagios.

    
por 07.12.2010 / 15:02
1

Você sabe em que média de carga o desempenho do seu sistema é afetado? Tivemos servidores no meu último trabalho que consistentemente sentar-se em média de carga de 35-40, mas ainda eram responsivos. É uma medida que você tem que fazer um pouco de trabalho de detetive para obter números precisos.

Você pode querer medir algumas outras métricas no sistema, como o tempo médio de conexão para SSH ou http; isso pode ser um indicador melhor de quanto de carga seu sistema está.

    
por 06.12.2010 / 15:58
0

Para estender a resposta do Invent Sekar: Ao usar check_load e porcentagens, acredito que você precisará do argumento de linha de comando "-r" junto com os outros.

Por exemplo:

command[check_load]=/usr/local/nagios/libexec/check_load -r -w 0.7,0.6,0.5 -c 0.9,0.8,0.7
    
por 19.11.2018 / 17:54