8 commentaires
yo t'as regardé les cgroups limits et requests de tes pods ? parfois les pods sont configurés pour demander peu de cpu mais ils peuvent en burst beaucoup et quand t'en as plein qui font ça en même temps ça sature la machine. ou alors c'est le kernel lui-même qui galère genre des softirqs ou des trucs liés au networking
pour les softirqs regarde node_cpu_seconds_total avec le label mode="softirq". tu peux aussi regarder node_context_switches_total ça peut monter si y'a trop de thread context switching. et vérifie aussi kube_node_status_capacity_cpu_cores vs kube_node_status_allocatable_cpu_cores pour voir ce qui est "réservé" pour k8s lui-même
une autre piste c'est les métriques collector de nodepool eux-mêmes. le node-exporter peut bouffer du cpu si tu as beaucoup de collectors activés ou si le scraping est trop fréquent. ou même kubelet parfois ça part en sucette
j'ai checké les softirqs ça bouge pas énormément. par contre j'ai vu que kube_node_status_allocatable_cpu_cores est bien en dessous de la capacité, genre 80%. donc 20% du CPU de la machine est déjà bouffé par le système. mais même avec ça mes pods ne justifient pas les 90% d'utilisation
est-ce que tu as des daemonsets qui tournent et qui sont super cpu-hungry ? genre un agent de monitoring ou de sécurité qui scanne tout le temps ? ou un driver de csi qui a des problèmes et qui boucle ?
si t'as des volumes réseau montés (genre NFS EFS) sur tes nodes, le kernel peut passer beaucoup de temps à gérer ça. des fois ça se voit pas comme du CPU user ou system classique mais ça prend des cycles. vérifie la latence de tes montages réseaux si y'en a
bingo ! c'était un daemonset d'agent de sécurité qui avait une config défectueuse et scannait tous les fichiers du système en boucle. j'ai mis à jour sa config pour exclure certains chemins et le CPU est redescendu direct. merci pour les pistes cgroups et daemonsets !
Laisser une réponse
Vous devez être connecté pour poster un message !
hello la team ! alerte cpu high sur un nodepool k8s mais j'comprends pas pourquoi. l'alerte est sur le cpu total de l'instance pas sur un pod en particulier. quand je regarde les pods du nodepool y'a rien qui sature, tout est à 10-20% max. les instances sont à genre 90% cpu utilisation. qqun a une idée de ce qui peut manger le cpu à ce point sans que ce soit un pod spécifique ?