Ich bin mit einem Leistungsproblem in meiner Web-App in Bezug auf durchschnittliche Antwortzeit konfrontiert.Tomcat Antwortzeit Spikes
Mein Stack ist
Oracle Java 7 Tomcat 7.62/61 AWS Linux-Box Java setzt -Xms1G -Xmx4G -XParallelGCThreads = 4 (nicht abgeschlossen werden mehr hinzufügen) neue Relikt Mit
Aus Meine Web-App, rufe ich anderen Service (ein anderer Java-Prozess auf anderen Rechner)
Ich benutze Executors.newCachedThreadPool() (Ich weiß, es ist schlecht, aber kann mein Problem zu diesem Ding nur noch nicht zuordnen) zu nennen der andere Prozess auf Ruhe.
Nun zu der Frage, meine neue Reliquie zeigt Spike für Web-App durchschnittliche Reaktionszeit alle 15-20 Minuten oder so. Die Anzahl der Threads steigt zu diesem Zeitpunkt. (Nur sichtbare Sache) CPU steigt jedoch nicht alarmierend. Nur marginale Spitze, und bleibt unter 50. GC läuft regelmäßig, obwohl ich keine Zeit habe. (Neues Relikt zeigt nur GC-Sammlung% Alter)
Auf der Service-Seite, durchschnittliche Antwortzeit nie erhöht, bleibt mehr oder weniger flach während der Spitze.
Bohren nach unten auf webap Aufruf zeigt erhöhte Zeit für diejenigen Service obwohl in externen Service (fühlt sich an wie eine Diskrepanz mir zwischen zwei Anwendungen Statistiken über neue Relikt eine Idee?)
- Kann jemand Ansatz vorschlagen, die lösen Problem?
- Welche Daten sollte ich sammeln, um darüber zu gehen?
- Kann jemand Licht auf neue Relikt fehlende Punkte werfen?
- Ist es GC oder der Thread-Pool aus dem Aussehen davon?