Zwiększ przestrzeń permgen

Odpowiedzi:

142

Możesz użyć :

-XX:MaxPermSize=128m

zwiększyć przestrzeń. Ale to zwykle tylko opóźnia to, co nieuniknione.

Możesz także zezwolić PermGen na zbieranie śmieci

-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled

Zwykle dzieje się tak podczas wykonywania wielu ponownych wdrożeń. Dziwię się, że używasz czegoś takiego jak indeksowanie. Użyj virtualvm lub jconsole do monitorowania przestrzeni Perm gen i sprawdź, czy wyrównuje się po rozgrzaniu indeksowania.

Może warto rozważyć przejście na inną maszynę JVM, taką jak IBM JVM. Nie ma stałej generacji i jest odporny na ten problem.

Peter Tillemans
źródło
Dzięki!! Ale gdzie mam to zapisać? Chyba w jednym pliku tutaj: tomcat / conf Czy się mylę?
Blanca,
1
W przypadku tomcat można utworzyć zmienną środowiskową CATALINA_OPTS z połączonymi wartościami tych opcji. Skrypt startowy doda je do wiersza poleceń Java przed uruchomieniem tomcat. Nie można tego zrobić z konfiguracji tomcat, ponieważ maszyna JVM jest już skonfigurowana w tym momencie.
Peter Tillemans
2
Jeśli jest to FreeBSD, dodaj opcje do pliku /etc/rc.conf. Najpierw przeczytaj skrypt startowy tomcat, aby zobaczyć dokładny parametr, którego będzie szukał.
Brian Knoblauch
3
W OpenJDK 7 CMSPermGenSweepingEnabled jest przestarzały i zastępuje CMSClassUnloadingEnabled
Petr Gladkikh
12

W przypadku tomcat możesz zwiększyć przestrzeń permGem za pomocą

 -XX:MaxPermSize=128m

W tym celu należy utworzyć (jeśli jeszcze nie istnieje) plik o nazwie setenv.sh w folderze tomcat / bin i dołączyć do niego następujący wiersz

   export JAVA_OPTS="-XX:MaxPermSize=128m"

Źródła: http://wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat

Paroksh Saxena
źródło
1
export JAVA_OPTS="-XX:MaxPermSize=128m"pracował dla mnie z Clojure + lein repl
Jeff
3

Możesz również zwiększyć go za pomocą argumentów VM w swoim IDE. W moim przypadku używam Tomcat v7.0, który działa na Eclipse. Aby to zrobić, kliknij dwukrotnie swój serwer (Tomcat v7.0). Kliknij link „Otwórz konfigurację uruchamiania”. Przejdź do zakładki „Argumenty”. Dodaj -XX: MaxPermSize = 512 m do listy argumentów maszyny wirtualnej. Kliknij „Zastosuj”, a następnie „OK”. Uruchom ponownie serwer.

user3375152
źródło
3

jeśli okazało się, że ustawienia pamięci nie są używane i aby zmienić ustawienia pamięci, użyłem tomcat7w lub tomcat8w w folderze \ bin, po czym powinno się pojawić:

monitor tomcat

Kliknij kartę Java i dodaj arguments.restart tomcat

Kevin STS
źródło
@ Jérémie BI nie ma wystarczającej liczby punktów reputacji, aby bezpośrednio dodać obraz.
Kevin STS
0

W dystrybucjach podobnych do Debiana ustawiasz to w /etc/default/tomcat[67]

der_do
źródło