Java utilizzo elevato della CPU
Un utilizzo elevato della CPU in Java è spesso una combinazione di metodi critici, comportamento del GC, contesa sui lock e overhead nella pianificazione dei thread.
Common symptoms
- Il processo JVM rimane sotto carico elevato
- La latenza aumenta tra le richieste
- La CPU aumenta senza un proporzionale incremento del throughput
Likely causes
- Percorso di codice critico sotto carico
- Garbage collection eccessiva
- Troppi thread o contesa sui lock
Evidence to look for
Il PID Java domina l'utilizzo della CPU
Il numero di thread aumenta insieme alla CPU
Il campionamento indica un insieme ristretto di metodi
What it usually means
La soluzione dipende dal fatto che la JVM stia impiegando tempo in calcoli utili, garbage collection o overhead di sincronizzazione.
What to do next
- 1Analizza il comportamento dei thread e del GC insieme alla CPU
- 2Profila i metodi critici prima di ottimizzare alla cieca
- 3Riduci la contesa sui thread e le allocazioni costose
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai