Membre depuis le 10/03/2019
le cpu iowait c'est quand le cpu attend des opérations d'e/s (disque réseau). c'est pas du cpu pure mais ça montre une saturation. le node-exporter expose des métriques de disque regarde les node_disk_io_time_seconds_total ou node_disk_weighted_io_time_seconds_total pour voir le temps passé à faire des i/o
Membre depuis le 14/07/2019
pour affiner tu peux aussi regarder node_filesystem_avail_bytes ou node_filesystem_free_bytes pour les disques. et surtout node_disk_io_time_seconds_total pour chaque disque. si tu as des spikes là dessus c'est que le disque est saturé et que le cpu attend
Membre depuis le 08/03/2019
un truc cool c de regarder les iops et la latence. le node-exporter a des metrics comme node_disk_reads_completed_total et node_disk_writes_completed_total. tu peux calculer les iops et regarder si c anormalement bas pour la charge cpu affichée en iowait. ou la latence avec les _seconds_total et les _merged_total
Membre depuis le 03/09/2023
d'acc je vois. donc je devrais plutôt baser mes alertes sur des métriques de disque et d'iops que sur le cpu_usage direct. vous auriez une petite query promql pour alerter si le iowait est élevé et que le disque est busy genre à plus de 80% de son temps sur les 5 dernières minutes ?
Membre depuis le 10/03/2019
voilà une base :
(rate(node_cpu_seconds_total{mode="iowait"}[5m]) > 0.05)
and
(rate(node_disk_io_time_seconds_total[5m]) / node_disk_io_time_seconds_total > 0.8)
la première partie pour le iowait > 5% et la deuxième pour le disque busy > 80% tu peux ajuster les seuils bien sûr
Membre depuis le 03/09/2023
parfait ça c'est beaucoup plus parlant comme alerte. je vais implémenter ça. thx pour le coup de main !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
gregoire59
Membre depuis le 03/09/2023
salut j'ai des alertes prometheus qui pètent sur le cpu usage de mes instances k8s. mais quand je me co sur les nodes et que je fais un top je vois que le cpu est en fait majoritairement en iowait. du coup l'alerte est un peu trompeuse. comment je peux mieux monitorer ça pour différencier le cpu pur du iowait via prometheus et node-exporter ?