Quali valori di avviso e critici usare per check_load?


13

In questo momento sto usando questi valori:

# 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

Ma questi valori vengono scelti quasi casualmente.

Qualcuno ha alcuni valori testati?


2
Penso che ci sia NO standardo testedvalore. Dipende dal carico di lavoro del server previsto. Se si prevede un carico elevato, è necessario aumentare i valori. Altrimenti, il tuo server apparirà sempre in stato critico.
Khaled,

Sì, questo è il mio problema. Ricevo costantemente notifiche critiche. Dovrei moltiplicare tutto per 3?
Sandra,

Risposte:


9

Il caricamento di Linux è in realtà semplice. Ciascuno dei numeri avg del carico è la somma di tutto il carico avg del core. Vale a dire.

 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

dove 0 < avg load < infinity.

Quindi, se un carico è 1 su un server a 4 core, significa che ciascun core viene utilizzato il 25% o un core è al 100% sotto carico. Un carico di 4 significa che tutti e 4 i core sono sotto carico al 100%. Un carico di> 4 indica che il server ha bisogno di più core.

check_load ora hanno

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

il che significa che una volta usato, puoi pensare al tuo server come se avesse un solo core e quindi scrivere direttamente le frazioni percentuali senza pensare al numero di core. Con -rl'avvertimento e gli intervalli critici diventa 0 <= load avg <= 1. Vale a dire. non è necessario modificare i valori di avviso e critici da server a server.

OP ha 5,10,15 per gli intervalli. Questo è sbagliato. È 1,5,15.


27

Anche se è un vecchio post, rispondendo ora perché sapevo che i valori di soglia di check_load sono grossi mal di testa per i neofiti ..;)

Un avviso di avviso, se la CPU è del 70% per 5 minuti, 60% per 10 minuti, 50% per 15 minuti. Un avviso critico, se la CPU è del 90% per 5 minuti, 80% per 10 minuti, 70% per 15 minuti.

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

Tutti i miei risultati sul carico della CPU:

Cosa significa "carico": Wikipedia dice:

Tutti i sistemi Unix e simili a Unix generano una metrica di tre numeri di "carico medio" nel kernel. Gli utenti possono facilmente interrogare il risultato corrente da una shell Unix eseguendo il comando uptime:

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

Dalla media del carico di uscita sopra: 0.06, 0.11, 0.09significa (su un sistema a CPU singola):

  • durante l'ultimo minuto, la CPU è stata sottocaricata del 6%
  • negli ultimi 5 minuti, la CPU è stata sottocaricata dell'11%
  • durante gli ultimi 15 minuti, la CPU è stata sottocaricata del 9%

.

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

La media del carico sopra di 1.73 0.50 7.98su un sistema a CPU singola come:

  • durante l'ultimo minuto, la CPU è stata sovraccaricata del 73% (1 CPU con 1,73 processi eseguibili, quindi 0,73 processi hanno dovuto attendere un turno)
  • negli ultimi 5 minuti, la CPU è stata sottocaricata al 50% (nessun processo ha dovuto attendere un turno)
  • durante gli ultimi 15 minuti, la CPU è stata sovraccaricata del 698% (1 CPU con 7,98 processi eseguibili, quindi 6,98 processi hanno dovuto attendere un turno)

Calcolo del valore di soglia di Nagios:

Per l'installazione di caricamento della CPU Nagios, che include avvisi e critici:

y = c * p / 100

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

per un sistema a 4 core:

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

Per un sistema single core:

y = p / 100

Dove: 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 ottimo white paper sull'analisi del carico della CPU del Dr. Gunther http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf In questo articolo online il Dr. Gunther scava nel kernel UNIX per scoprire come calcolare il carico medio (il I "Tripletti di Los Angeles") vengono calcolati e quanto sono appropriati come metriche di pianificazione della capacità.


2
il tempo dovrebbe essere 1,5 e 15min
dalf

3

A meno che i server in questione non abbiano un carico di lavoro asincrono in cui la profondità della coda è l'importante metrica di servizio da gestire, allora onestamente non vale nemmeno la pena monitorare la media del carico. È solo una distrazione dalle metriche che contano come il tempo di servizio (tempo di servizio e tempo di servizio).


2

Un buon complemento anche Nagios è uno strumento come Munin o Cacti, che illustreranno i diversi tipi di carico di lavoro che il tuo server sta vivendo. Che si tratti di load_average, utilizzo della cpu, disk io o qualcos'altro.

Utilizzando queste informazioni è più facile impostare buoni valori di soglia in Nagios.


1

Sai a quale media di carico sono interessate le prestazioni del tuo sistema? Avevamo server nel mio ultimo lavoro che si posizionavano costantemente a una media di carico di 35-40, ma erano ancora pronti. È una misura che devi fare un po 'di lavoro investigativo per ottenere numeri precisi.

Potresti invece misurare alcune altre metriche sul sistema, come il tempo medio di connessione per SSH o http; questo potrebbe essere un indicatore migliore del carico del sistema.


2
Cosa significa in realtà una media di carico, ad esempio 35? Il numero di core della CPU fa la differenza sul numero?
Sandra,

1

Per estendere la risposta di Invent Sekar: Quando uso check_load e percentuali credo che avrete bisogno dell'argomento della riga di comando "-r" insieme agli altri.

Per esempio:

command[check_load]=/usr/local/nagios/libexec/check_load -r -w 0.7,0.6,0.5 -c 0.9,0.8,0.7
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.