7 commentaires
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.
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.
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.
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).
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.
Laisser une réponse
Vous devez être connecté pour poster un message !
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 ?