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.
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"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.
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ć:
Kliknij kartę Java i dodaj arguments.restart tomcat
Odpowiedzi:
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
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.
źródło
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
źródło
export JAVA_OPTS="-XX:MaxPermSize=128m"
pracował dla mnie z Clojure + lein replMoż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.
źródło
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ć:
Kliknij kartę Java i dodaj arguments.restart tomcat
źródło
W dystrybucjach podobnych do Debiana ustawiasz to w
/etc/default/tomcat[67]
źródło