Quelles valeurs d'avertissement et critiques utiliser pour check_load?

13

En ce moment, j'utilise ces valeurs:

# 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

Mais ces valeurs sont juste choisies presque au hasard.

Quelqu'un a-t-il des valeurs testées?

Sandra
la source
2
Je pense que il n'y a pas standardou testedvaleur. Cela dépend de la charge de travail attendue de votre serveur. Si vous vous attendez à une charge élevée, vous devez augmenter les valeurs. Sinon, votre serveur apparaîtra toujours dans un état critique.
Khaled
Oui, c'est mon problème. Je reçois constamment des notifications critiques. Dois-je tout multiplier par 3?
Sandra

Réponses:

9

Le chargement Linux est en fait simple. Chacun des nombres moyens de charge est la somme de toutes les charges moyennes du cœur. C'est à 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

0 < avg load < infinity.

Donc, si une charge est de 1 sur un serveur à 4 cœurs, cela signifie que chaque cœur est utilisé à 25% ou qu'un cœur est à 100% sous charge. Une charge de 4 signifie que les 4 coeurs sont sous une charge de 100%. Une charge> 4 signifie que le serveur a besoin de plus de cœurs.

check_load ont maintenant

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

ce qui signifie que lorsqu'il est utilisé, vous pouvez considérer votre serveur comme ayant un seul cœur et donc écrire directement les pourcentages sans penser au nombre de cœurs. Avec -rl'avertissement et les intervalles critiques devient 0 <= load avg <= 1. C'est à dire. vous n'avez pas à modifier vos valeurs d'avertissement et critiques d'un serveur à l'autre.

OP ont 5,10,15 pour les intervalles. C'est faux. C'est 1,5,15.

d2xdt2
la source
27

Bien que ce soit un ancien article, répondre maintenant parce que je savais que les valeurs de seuil de check_load sont des maux de tête pour les débutants ..;)

Une alerte d'avertissement, si le processeur est à 70% pendant 5 minutes, 60% pendant 10 minutes, 50% pendant 15 minutes. Une alerte critique, si le processeur est à 90% pendant 5 minutes, 80% pendant 10 minutes, 70% pendant 15 minutes.

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

Toutes mes découvertes sur la charge CPU:

Que signifie "la charge": Wikipedia dit:

Tous les systèmes Unix et Unix-like génèrent une métrique de trois nombres de "moyenne de charge" dans le noyau. Les utilisateurs peuvent facilement interroger le résultat actuel à partir d'un shell Unix en exécutant la commande uptime:

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

De la moyenne de charge de sortie ci-dessus: 0.06, 0.11, 0.09signifie (sur un système à processeur unique):

  • au cours de la dernière minute, le CPU a été sous-chargé de 6%
  • au cours des 5 dernières minutes, le CPU était sous-chargé 11%
  • au cours des 15 dernières minutes, le CPU était sous-chargé 9%

.

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

La moyenne de charge ci-dessus 1.73 0.50 7.98sur un système à processeur unique est la suivante:

  • au cours de la dernière minute, le processeur a été surchargé de 73% (1 processeur avec 1,73 processus exécutables, de sorte que 0,73 processus ont dû attendre un tour)
  • au cours des 5 dernières minutes, le CPU a été sous-chargé à 50% (aucun processus n'a dû attendre un tour)
  • au cours des 15 dernières minutes, le processeur a été surchargé de 698% (1 processeur avec 7,98 processus exécutables, de sorte que 6,98 processus ont dû attendre un tour)

Calcul de la valeur seuil de Nagios:

Pour la configuration de Nagios CPU Load, qui comprend un avertissement et un élément critique:

y = c * p / 100

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

pour un système à 4 cœurs:

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

Pour un système monocœur:

y = p / 100

Où: 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 grand livre blanc sur l'analyse de la charge du processeur par Dr. Gunther http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf Dans cet article en ligne, Dr. Gunther fouille dans le noyau UNIX pour découvrir comment les moyennes de charge (la Les «triplets LA») sont calculés et dans quelle mesure ils sont appropriés comme mesures de planification de la capacité.

Invent Sekar
la source
2
le temps devrait être de 1,5 et 15min
2015
3

À moins que les serveurs en question aient une charge de travail asynchrone où la profondeur de la file d'attente est la métrique de service importante à gérer, sa valeur honnête ne vaut même pas la peine d'être surveillée en moyenne. C'est juste une distraction des métriques qui importent comme le temps de service (temps de service et temps de service).

cagenut
la source
2

Un bon complément aussi Nagios est un outil comme Munin ou Cacti, ils vont représenter graphiquement les différents types de charge de travail que connaît votre serveur. Que ce soit load_average, l'utilisation du processeur, le disque io ou autre chose.

En utilisant ces informations, il est plus facile de définir de bonnes valeurs de seuil dans Nagios.

nenne
la source
1

Savez-vous à quelle charge moyenne les performances de votre système sont affectées? Nous avions des serveurs à mon dernier emploi qui se situaient constamment à une charge moyenne de 35 à 40, mais étaient toujours réactifs. C'est une mesure pour laquelle vous devez faire un peu de travail de détective pour obtenir des chiffres précis.

Vous souhaiterez peut-être plutôt mesurer d'autres mesures sur le système, comme le temps de connexion moyen pour SSH ou http; cela pourrait être un meilleur indicateur de la charge de votre système.

Peter Grace
la source
2
Que signifie réellement une moyenne de charge de 35 par exemple? Le nombre de cœurs de processeur fait-il une différence sur le nombre?
Sandra
1

Pour étendre la réponse d'Invent Sekar: Lorsque vous utilisez check_load et pourcentages, je pense que vous aurez besoin de l'argument de ligne de commande "-r" avec les autres.

Par exemple:

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
la source