java.lang.OutOfMemoryError: angeforderte 1958536 Bytes für Chunk :: new. Aus Swap-Speicherplatz

8

Wir sehen uns in unserem Produktionsbetrieb in unvorhersehbarer Weise mit dem untenstehenden Problem konfrontiert manchmal ist der Server an einem Tag oder manchmal in einer Woche unten, ist unten der genaue Fehler Dump, unten sind die Einstellungen für den Server.

%Vor%

In catalina.sh wurde die folgende Einstellung vorgenommen:

%Vor%

Fehler Trace: -

%Vor%

Vielen Dank im Voraus, Amit

    
Amit 14.12.2010, 04:17
quelle

3 Antworten

6

Für die Aufzeichnung (und Google) sieht dies wie sowohl diese Bugs, die in der Version 1.6u22 von sun's jdk behoben wurden. Als erstes müssen Sie Ihre JVM aktualisieren. Wenn dies immer noch geschieht und immer bei einer bestimmten Methode geschieht, können Sie diese Methode mit der folgenden jvm-Markierung aus der Kompilierung ausschließen (solange Sie sich der Auswirkungen auf die Leistung bewusst sind):

%Vor%

(wie vorgeschlagen hier ). Aber, update zuerst dein jvm.

    
Bobby Powers 14.06.2011 00:00
quelle
4

Sie arbeiten mit vielen JVM-Argumenten, die sich auf den Speicher auswirken. Haben Sie versucht, jede Option empirisch zu entfernen, um zu sehen, welche die OOM verursacht? Dieses spezielle OOM kommt nicht vom Java-Heap, sondern vom eigenen C-Heap der JVM.

    
Amir Afghani 14.12.2010 04:23
quelle
3

Wie in den anderen Antworten / Kommentaren angegeben, ist der Speicher knapp. Angesichts Ihrer JVM-Einstellungen würde ich sagen, dass die Grundursache zu 99% wahrscheinlich ein Speicherleck ist.

Wenn Sie in der Tomcat-Instanz viel heißes Laden durchgeführt haben, könnte das nur daran liegen. Heißes Laden ist berüchtigt dafür, dass Speicher ausgelaufen ist, und es gibt nicht viel, was Sie in der Praxis tun können ... außer, dass Sie Ihren Tomcat häufiger beenden und neu starten.

Die andere Möglichkeit ist, dass Ihre Anwendung Speicher verliert. Wenn dies der Fall ist, müssen Sie einen Speicherprofiler verwenden, um das Leck aufzuspüren.

Die Tatsache, dass das OOME einen JVM-Absturz verursacht hat, ist interessant, aber wahrscheinlich nicht signifikant. (Es sieht so aus, als ob die JVM versuchte, eine von einer JSP generierte Klasse zu kompilieren, wenn der Speicher knapp wurde. Der angeforderte Chunk ist ziemlich groß, aber das bedeutet wahrscheinlich, dass Sie eine ziemlich große / komplizierte JSP haben.)

    
Stephen C 14.12.2010 06:25
quelle

Tags und Links