Utilisation élevée du CPU en Java
Une utilisation élevée du CPU en Java est souvent un mélange de méthodes coûteuses, de comportement du GC, de contention de verrous et de surcharge liée à la planification des threads.
Common symptoms
- Le processus JVM reste fortement sollicité sous charge
- La latence augmente sur l'ensemble des requêtes
- Le CPU augmente sans hausse proportionnelle du débit
Likely causes
- Chemin de code critique sous charge
- Collecte des déchets excessive (GC)
- Trop de threads ou contention de verrous
Evidence to look for
Le PID Java domine l'utilisation du CPU
Le nombre de threads augmente en même temps que le CPU
L'échantillonnage indique un ensemble restreint de méthodes
What it usually means
La solution dépend du fait que la JVM passe du temps à effectuer des calculs utiles, à faire du garbage collection (GC) ou à gérer une surcharge de synchronisation.
What to do next
- 1Examinez le comportement des threads et du GC en parallèle avec le CPU
- 2Profilez les méthodes coûteuses avant d'ajuster quoi que ce soit à l'aveugle
- 3Réduisez la contention entre threads et les allocations coûteuses
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai