Zajmuję się różnymi opcjami dotyczącymi usuwania śmieci na maszynie wirtualnej Java 6 18 i chciałbym otrzymać kilka wskazówek.Różne opcje rozwiązywania problemów z PermGenem
Uruchomimy naszą aplikację na JBoss, a od czasu do czasu zdarzają się niesławne błędy PermGen podczas redeploys. W Internecie istnieje wiele sprzecznych i przestarzałych informacji o najlepszym sposobie rozwiązania lub złagodzenia tego problemu.
Od what I can see dodaje jest poprawna:
- opcji VM na własną rękę nie rozwiąże ten problem tylko opóźnić.
- Jedynym niezawodnym sposobem rozwiązania tego problemu jest naprawienie błędów kodowania na samym serwerze aplikacji (mało prawdopodobne) lub na kodzie (nasz kod lub biblioteki innych firm) uruchomionym na serwerze aplikacji (bardziej prawdopodobne). Wypełnianie Permgen jest często wynikiem odwołań od obiektów ładowanych przez program ładujący klasy do obiektów ładowanych przez program ładujący klasy Application Server, zapobiegając w ten sposób wyrzucaniu śmieci z programu ładującego klasy aplikacji.
Mam dwa pytania wynikające z tego:
- Czy powyższe są prawidłowe?
- Gdzie są dostępne opcje maszyn wirtualnych
CMSClassUnloadingEnabled
iCMSPermGenSweepingEnabled
? Z tego, co widzę,CMSClassUnloadingEnabled
zastępuje lub domyślnie włączaCMSPermGenSweepingEnabled
. Czy któryś z nich pomaga w powyższym problemie?
+1 przy wyłączaniu hot-wdrażania na serwerach produkcyjnych. Właściwie to robię to do wszystkiego, ale do środowisk stacji roboczych programistów. –