Quais valores críticos e de aviso usar para o check_load?

13

No momento, 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?

Sandra
fonte
2
Eu acho que não há standardou testedvalor. Depende da carga de trabalho esperada do servidor. Se você espera uma carga alta, deve aumentar os valores. Caso contrário, seu servidor sempre aparecerá em estado crítico.
Khaled
Sim, esse é o meu problema. Recebo constantemente notificações críticas. Devo multiplicar tudo por 3?
Sandra

Respostas:

9

A carga do Linux é realmente simples. Cada um dos números médios de carga é a soma 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

onde 0 < avg load < infinity.

Portanto, se uma carga é 1 em um servidor de 4 núcleos, significa que cada núcleo é usado 25% ou um núcleo está 100% sob carga. Uma carga de 4 significa que todos os 4 núcleos têm carga abaixo de 100%. 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, escrever as frações percentuais diretamente, sem pensar no número de núcleos. Com -ro aviso e intervalos críticos se torna 0 <= load avg <= 1. Ou seja. você não precisa modificar seu aviso e valores críticos de servidor para servidor.

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

d2xdt2
fonte
27

Embora seja um post antigo, respondendo agora porque sabia que os valores limite de check_load são uma grande dor de cabeça para os novatos ..;)

Um alerta de aviso, se a CPU for 70% por 5 minutos, 60% por 10 minutos e 50% por 15 minutos. Um alerta crítico, se a CPU for 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*

Todas as minhas descobertas sobre a carga da CPU:

O que se entende por "carga": a Wikipedia diz:

Todos os sistemas Unix e Unix-like geram uma métrica de três números de "carga média" 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.09significa (em um sistema de CPU única):

  • durante o último minuto, a CPU foi sobrecarregada em 6%
  • nos últimos 5 minutos, a CPU foi subcarga 11%
  • durante os últimos 15 minutos, a CPU foi subcarga 9%

.

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

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

  • durante o último minuto, a CPU foi sobrecarregada em 73% (1 CPU com 1,73 processos executáveis, de modo que 0,73 processos tiveram que esperar uma vez)
  • durante os últimos 5 minutos, a CPU foi sobrecarregada em 50% (nenhum processo precisou esperar uma vez)
  • durante os últimos 15 minutos, a CPU foi sobrecarregada em 698% (1 CPU com 7,98 processos executáveis, de modo que 6,98 processos tiveram que esperar uma vez)

Cálculo do valor limite do Nagios:

Para a instalação do Nagios CPU Load, que inclui avisos e críticas:

y = c * p / 100

Onde: y = nagios value c = number of cores p = wanted load procent

para um 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 um sistema de núcleo único:

y = p / 100

Onde: 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

Um excelente artigo sobre a análise de carga de CPU do Dr. Gunther http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf Neste artigo on-line, o Dr. Gunther analisa o kernel do UNIX para descobrir como as médias de carga (o “Trigêmeos LA”) são calculados e quão apropriados são como métricas de planejamento de capacidade.

Invent Sekar
fonte
2
o tempo deve ser de 1,5 e 15 min
dalf
3

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

cagenut
fonte
2

Um bom complemento também O Nagios é uma ferramenta como o Munin ou o Cacti, que representa graficamente os diferentes tipos de carga de trabalho que seu servidor está enfrentando. Seja load_average, uso da CPU, disco io ou qualquer outra coisa.

Usando essas informações, é mais fácil definir bons valores de limite no Nagios.

nenne
fonte
1

Você sabe em que carga média o desempenho do seu sistema é afetado? Tínhamos servidores no meu último trabalho que ficavam consistentemente na média de carga de 35 a 40, mas ainda assim respondiam. É uma medida que você precisa fazer um pouco de trabalho de detetive para obter números precisos.

Você pode avaliar algumas outras métricas no sistema, como o tempo médio de conexão para SSH ou http; esse pode ser um indicador melhor da carga do seu sistema.

Peter Grace
fonte
2
O que significa uma média de carga de, por exemplo, 35? O número de núcleos da CPU faz diferença no número?
Sandra
0

Para estender a resposta do Invent Sekar: Ao usar check_load e porcentagens, acredito que você precisará do argumento da 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
Phil
fonte