Membre depuis le 28/06/2021
salut. ouais le cpu 'system' et 'iowait' c'est le piège. la métrique `node_cpu_seconds_total` agrège tout. pour avoir l'usage appli tu dois exclure certains modes. le `mode="idle"` c'est bien mais il inclut aussi le `iowait` dedans si mes souvenirs sont bons.
Membre depuis le 15/07/2019
non `idle` c'est le temps où le cpu fait rien. `iowait` c'est le cpu qui attend de l'io. un cpu en `iowait` n'est pas utilisé par ton appli. il attend. donc si `iowait` est haut ton app est bloquée sur de l'io pas sur du calcul.
Membre depuis le 28/06/2021
ah oui my bad `iowait` est une catégorie à part entière. donc si tu veux le cpu actif *utile* à tes apps tu devrais faire `mode!="idle"` et `mode!="iowait"` et `mode!="steal"` si t'es en vm.
Membre depuis le 27/10/2023
ok je vois la nuance. donc si j'ai bien compris je devrais exclure `idle` et `iowait` de mon calcul ? et `steal` si je suis en VM. on est sur des vms donc je vais ajouter `steal` aussi.
Membre depuis le 28/06/2021
exactement. ta query devrait ressembler à un truc du genre :
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=~"idle|iowait|steal"}[5m])) * 100)
ça te donnera le pourcentage de cpu qui est *réellement* utilisé pour faire du travail utile (user + system non-iowait).
Membre depuis le 15/07/2019
ouais ou plus simple tu peux sommer les modes qui t'intéressent genre `sum by (instance) (rate(node_cpu_seconds_total{mode=~"user|system"}[5m])) * 100` si tu veux juste user et system pur hors iowait/idle.
Membre depuis le 27/10/2023
j'ai testé la première query avec `mode=~"idle|iowait|steal"` et ça change tout. les alerts sont beaucoup plus pertinentes maintenant. c'était un vrai point de douleur. merci les gars c'est top !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
cjacques
Membre depuis le 27/10/2023
Salut les sres j'ai un souci avec nos alertes cpu sur prometheus. on a des serveurs qui alertent pour cpu usage > 80% mais quand je me co dessus le top montre que c'est le kernel qui bosse genre 50-60% de temps en 'system' ou 'iowait' et nos apps sont peinardes. comment on filtre ça pour avoir des alertes pertinentes sur le vrai usage appli ?