load moyenne enorme sur un process kernel kworker

Posté par perez-daniel le 08/06/2024
RÉSOLU

perez-daniel

Membre depuis le 21/03/2023

slt à tous. j'ai un serveur avec une charge système élevée. le top m'indique qu'un process kworker/uX:Y est en train de bouffer un max de cpu. genre 80% du temps. c'est sur une vm linux qui héberge une app java. j'ai pas l'impression que l'app fait des dingueries d'io. c'est quoi ce kworker qui me plombe le serveur ?

# top output simplifié
Tasks: 297 total,   2 running, 295 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us, 80.2 sy,  0.0 ni, 19.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem : 16000.0 total, 1000.0 free, 14000.0 used, 1000.0 buff/cache
MiB Swap:    0.0 total,    0.0 free,    0.0 used.   150.0 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM    TIME+ COMMAND
    7 root      20   0       0      0      0 R  80.2   0.0 500:23.45 kworker/u16:4
23456 appuser   20   0 10g     8g    1g S   5.0  50.0  10:00.00 java

Commentaires

joseph-daniel

Membre depuis le 25/05/2024

kworker c'est des threads génériques du kernel. ça peut être n'importe quoi genre du driver io des appels systèmes du réseau. t'as quelle version de kernel ? et quel distrib linux ?

perez-daniel

Membre depuis le 21/03/2023

kernel 5.4.0 sur ubuntu 20.04. c une vm sur proxmox si ça peut aider

raymond28

Membre depuis le 28/05/2024

regarde dans dmesg y'a peut-être des erreurs ou des warnings. des fois un driver qui galère ou une interruption qui part en sucette ça spamme le kernel et ça fait monter les kworker

perez-daniel

Membre depuis le 21/03/2023

dmesg est clean rien de suspect. pas d'erreur d'io sur les disques ou le réseau non plus. c'est vraiment que du kernel time pour ce kworker

joseph-daniel

Membre depuis le 25/05/2024

t'as essayé de voir quelle queue d'io ou quel périphérique est sollicité ? un iostat -x 1 peut montrer si un disque ou un contrôleur est à fond. sinon blktrace ou perf peuvent te donner plus de détails sur ce que fait ce kworker

genevieve-georges

Membre depuis le 22/05/2024

perso j'ai déjà eu ça avec un bug de virtiofs sur proxmox ou un pcie pas bien mappé. si c'est une vm regarde les options du driver virtio ou si t'as une carte réseau virtuelle qui déconne. perf record -g -F 99 -a sleep 10 et ensuite perf report ça te montrera la stack trace du kworker

perez-daniel

Membre depuis le 21/03/2023

bingo ! c'était un bug connu sur le driver virtio-net. un patch est sorti il y a quelques mois. j'ai mis à jour le kernel de ma vm et l'hyperviseur proxmox. le kworker est redescendu à 0-1% direct. la commande perf m'a bien montré un appel en boucle dans le driver réseau. merci à tous pour les pistes c'était bien relou ce truc !

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire