2016-05-04 6 views
-1

Ich habe eine Java-Webanwendung entwickelt, die derzeit in Tomcat7 auf Debian (Himbeerpy) eingesetzt wird. Wenn die Anwendung gestartet wird, entspricht der verwendete Speicher 20%. Aber wenn ich meinen eigenen Webserver anrufe, ruft er eine Ruhe-API auf, die mehr als 1k Entitäten (JSON-> Java-Objekte) zurückgibt und über sie iteriert, um mit Hibernate zu speichern. Um die Datenbank zu füllen, muss ich dies viele Male aufrufen und nach 5 oder 6 Anrufen erreicht die Speichernutzung fast den maximalen Wert und wird nie besser. Auch ich kann sehen, dass nach ein paar Anrufen die Geschwindigkeit des Herunterladens und Speicherns (Batch) so so langsamer wird.Tomcat und Java Speicherleck

Was mache ich falsch? Es ist möglich, dass alle Entitäten nach der Nutzung nicht gelöscht werden.

Dies ist ein Bild über Memory Usage

Grüße

+1

Bitte fügen Sie Ihre Speichermethode hinzu. –

+0

Möglicherweise ein Leck. Aber Sie müssen Code hinzufügen, um dies zu überprüfen. – Fildor

+0

Verwenden Sie einen Profiler, um zu sehen, wie Ihre Anwendung Speicher verwendet. Es könnte ein Leck sein, es könnte sein, dass Ihre Anwendung nur mehr Speicher benötigt als verfügbar ist. –

Antwort

0

ich das Problem tatsächlich gefunden. Bei der Verwendung von Hibernate öffnete ich für jedes Objekt, das ich speichern wollte, eine neue Verbindung. Aber ich habe die enge Aussage verpasst.