Das Wachstum in den alten gen Speichernutzung bedeutet immer ein memory leak in java?

Wir haben mehrere VMs, die laufen Daten-service in der Produktion, Restful HTTP-client sendet Anfragen an data service, der laden ist sowas von schwer (500 Anfragen pro Sekunde pro host im Allgemeinen) und die Last immer ausgewogen auf jeder VM. Wir haben die gleiche Konfiguration auf allen Rechnern (2 CPUs), - Xms2048m -Xmx4096m -XX:MaxPermSize=192m -XX:NewSize=512m -XX:MaxNewSize=512M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError)

Vor zwei Tagen sahen wir die alten gen in die heap-Verwendung zu wachsen anfangen, auf 5 von den VMs (300 MB pro Tag), der alten gen in die heap-Verwendung auf anderen bleiben die gleichen (rund 80 MB), versuchen wir die Ursache zu identifizieren, darf ich Fragen, ob dies ist ein memory-leak-Problem oder einfach nur eine normale situation? Hat das Wachstum in den alten gen Speichernutzung bedeutet immer ein memory leak in java?

Dank.

Update: Wir haben gerade neu gestartet, die 5 hosts gestern, alten gen in die heap-Verwendung, die auf alle ging wieder normal, wie die anderen, jedoch, nach dem peak-load-wir hatten an diesem morgen, der alten gen in die heap-Verwendung, die auf einer von Ihnen begann wieder zu wachsen...

Ich bin ein Neuling mit diesen Sachen, aber ich dachte, die GC war angeblich, um vollständig zu verhindern Speicherlecks. In anderen Worten, ich dachte, Speicherverlust und java wurden nie im gleichen Satz.
Java nur GCs-Speicher that is not referenced. Wenn Sie erstellen eine for-Schleife, die hält das hinzufügen neuer Objekte zu einer Liste, die Sie laufen aus dem Speicher, bevor Sie sagen können, blueberry pie.
Es ist nicht unmöglich für java, um einen Speicherverlust, aber es müsste ein Fehler in der GC selbst. Ich glaube, es gibt Fälle wie,, don ' T zitieren Sie mich, wenn.
Ich bin mir nicht sicher, ob ein memory leak ist wirklich die gleiche wie die einfache Verwendung bis alle Ihre Speicher.
Es ist durchaus möglich, ein memory leak in Java -- zum Beispiel, indem mehr und mehr Daten in einer HashMap, dass Sie als cache verwendet wird, ohne Räumung / Ablauf-Politik

InformationsquelleAutor zhengyu | 2014-04-23

Schreibe einen Kommentar