Tôi đang xem xét các tùy chọn khác nhau xung quanh bộ sưu tập rác trên máy ảo Java 6 18 và muốn một số con trỏ.Các tùy chọn khác nhau để giải quyết các vấn đề PermGen
Chúng tôi chạy ứng dụng của chúng tôi trên JBoss, và đôi khi có lỗi PermGen khét tiếng trong quá trình redeploys. Có rất nhiều thông tin xung đột và lỗi thời trên internet về cách tốt nhất để giải quyết hoặc giảm nhẹ vấn đề này.
Từ what I can see, sau đây là đúng:
- tùy chọn VM tự mình sẽ không giải quyết được vấn đề này, chỉ trì hoãn nó. Cách duy nhất đáng tin cậy để khắc phục sự cố này là sửa lỗi mã hóa trong chính Máy chủ ứng dụng (không) hoặc mã (thư viện của chúng tôi hoặc thư viện của bên thứ ba) đang chạy trong Máy chủ ứng dụng (nhiều khả năng). Việc điền vào Permgen thường là kết quả của các tham chiếu từ các đối tượng được nạp bởi trình nạp lớp ứng dụng tới các đối tượng được nạp bởi trình nạp lớp Máy chủ ứng dụng, do đó ngăn chặn việc thu gom rác của trình nạp lớp của ứng dụng.
Tôi đã hai câu hỏi phát sinh từ này:
- là đúng trên?
- Các tùy chọn VM
CMSClassUnloadingEnabled
vàCMSPermGenSweepingEnabled
là gì? Từ những gì tôi có thể thấyCMSClassUnloadingEnabled
supercedes hoặc ngầm cho phépCMSPermGenSweepingEnabled
. Một trong hai người trong số họ có giúp được vấn đề trên không?
+1 khi tắt triển khai nóng trên máy chủ sản xuất. Trên thực tế tôi có xu hướng làm điều này cho tất cả mọi thứ nhưng môi trường làm việc của nhà phát triển. –