questione connessa: Garbage collector usage when upgrade from Java 6 + Tomcat 6 to Java 8 + Tomcat 8memoria con Java 1.8 in Tomcat 6 e Tomcat 8
Ho una serie di webapps, compilati con Java 8. Se li corro in Tomcat 8, ho un sacco di GC minore collezioni con allocazione di memoria casuale. In Tomcat 6 l'allocazione della memoria è più lineare e stabile (inattiva in entrambi i casi, senza traffico).
Eden Spazio Tomcat 8:
Eden Spazio Tomcat 6:
Sai perché succede?
EDIT 1:
Questi sono i dati di ambiente di produzione con jdk 1.8 e Tomcat 8. CPU è molto alto quasi sempre a causa dei cicli GC. Qualche commento a riguardo?
EDIT 2:
Questa è una heapDump Analisis (discarica 1,8 GB): spazio
Con più chiamate GC si utilizza meno CPU. –
@GilianJaosen ogni ciclo del GC richiede CPU (vedere l'immagine di utilizzo della CPU), una perdita di memoria potrebbe portare a una continua garbage collection con un tempo di CPU del 100% e un server inutilizzabile. –
Con 2 versioni principali tra Tomcat 6 e Tomcat 8, la risposta sarebbe qualcosa come "perché hanno cambiato le cose". Cosa succede se hai traffico e Tomcat non è solo inattivo (poiché è ciò che conta davvero). Stai esaurendo la memoria? Le tue prestazioni peggiorano con Tomcat 8? – Kayaman