Un ambiente di produzione è diventato molto lento di recente. La CPU del processo ha preso il 200%. Ha continuato a funzionare comunque. Dopo aver riavviato il servizio, è tornato normale. Ho diversi sintomi: L'heap dello spazio dei superstiti di Par è rimasto vuoto per molto tempo e la raccolta dei dati inutili ha richiesto circa il 20% del tempo della CPU.Old Gen heap è pieno e l'Eden e Survivor sono bassi e quasi vuoto
opzioni JVM:
X:+CMSParallelRemarkEnabled, -XX:+HeapDumpOnOutOfMemoryError, -XX:+UseConcMarkSweepGC, - XX:+UseParNewGC, -XX:HeapDumpPath=heapdump.hprof, -XX:MaxNewSize=700m, -XX:MaxPermSize=786m, -XX:NewSize=700m, -XX:ParallelGCThreads=8, -XX:SurvivorRatio=25, -Xms2048m, -Xmx2048m
Arch amd64
Dispatcher Apache Tomcat
Dispatcher Version 7.0.27
Framework java
Heap initial (MB) 2048.0
Heap max (MB) 2022.125
Java version 1.6.0_35
Log path /opt/newrelic/logs/newrelic_agent.log
OS Linux
Processors 8
System Memory 8177.964, 8178.0
Maggiori informazioni nella foto allegata Quando il problema si è verificato sulla non-heap la cache codice utilizzato e CMS utilizzato perm gen sceso a metà.
ho preso informazioni dal newrelic.
La domanda è perché non l'inizio del server di lavorare in modo lento.
A volte il server si arresta completamente, ma abbiamo rilevato che c'è un problema con PDFBox, quando si carica del pdf e contiene alcuni tipi di carattere si blocca la JVM.
Maggiori informazioni: ho notato che ogni giorno la vecchia generazione si sta riempiendo. Ora riavvio il server ogni giorno. Dopo il riavvio è tutto bello e dandy ma il vecchio gen si sta riempiendo fino al giorno successivo e il server rallenta fino a quando non ha bisogno di un riavvio.
Allora, qual è la domanda? –
Se il tuo spazio perm è esaurito e il tuo nuovo spazio è quasi vuoto, non avrebbe senso diminuire la dimensione del nuovo spazio e allocare più spazio al perm gen? Se lo fai e finisci con lo stesso problema, potresti avere una perdita di memoria. – TMN
Il perm contiene le classi compilate e altre cose. Il problema che vedo è che la Vecchia Gen sta crescendo. Devo riavviare il server ogni giorno per tornare alla normalità. Quando il grafico di perm gen (e il resto) è andato giù, c'è il riavvio del tomcat. – Bogdan