2011-06-29 17 views
7

Apache Tomcat (Atlassian Confluence) instancja jest uruchamiana za pomocą następujących opcji Java:Java używając więcej pamięci niż przydzielonej pamięci

JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=256m -Djava.awt.headless=true " 

Jednak widzę, że po uruchomieniu szybko zjada przez większość 1GB pamięć dostępna na moim wirtualnym serwerze.

PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
6082 root  19 0 1105m 760m 16m S 0.7 74.2 5:20.51 java 

Czy całkowita ilość zużytej pamięci (sterta + PermGen) nie powinna przekraczać wartości podanej przy użyciu -Xmx? Jednym z problemów, które powoduje to jest to, że nie mogę wyłączyć serwera przy użyciu skryptu zamknięcia, ponieważ próbuje on spawnować maszynę JVM z 256 MB pamięci, która nie działa, ponieważ nie jest dostępna.

+0

Może istnieje jakiś rodzimy alokacji pamięci dzieje poprzez JNI lub 'ByteBuffer's z bezpośredniej alokacji. –

+0

@Steve Tayor Może ... Nie znam Confluence tak dobrze, żeby wiedzieć, czy to robi. Zadałem pytanie na forum Confluence, ale nie otrzymałem jeszcze odpowiedzi. – vahidg

Odpowiedz

3

Całkowite zużycie pamięci Tomcat należy obliczać na NIE mniej niż Xmx + XX:MaxPermSize (w twoim przypadku 768 MB), ale pamiętam, że widziałem, że może to przezwyciężyć. Xmx to tylko przestrzeń sterty, a PermGen znajduje się poza stosem (rodzaj).

+4

heap + permgen + jvm overhead (nieokreślona kwota) –

+0

@Wesho: Cóż, może działać w 512 MB, wystarczy odpowiednio dostosować wszystkie ustawienia. Być może zrobi to 'Xms256m, XX: MaxPermSize = 128m'. –

5

Na przykład biblioteka natywna może łatwo przydzielić pamięć poza stertą Java.

bezpośrednie ByteBuffer ma również, że: http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html

Zawartość bezpośrednich bufory mogą przebywania poza normalnym śmieci zebrane sterty, a więc ich wpływ na zużycie pamięci wniosku nie może być oczywistym.

Istnieją dobre powody, aby przydzielić ogromne bezpośrednie ByteBuffers.

http://ehcache.org/documentation/offheap_store.html

+0

Dzięki za te informacje. – vahidg

Powiązane problemy