Tăng không gian permgen


88

Tôi đang làm việc với tomcat 6.0 và trong khi tôi đang lập chỉ mục (không phải khi tôi đang khởi động tomcat), tôi gặp lỗi khoảng cách cố định.
Làm thế nào tôi có thể tăng không gian đó ??

Cảm ơn


Tôi đã kiểm tra câu hỏi tương tự trước đây, nhưng không giúp tôi. -XX: NewSize = 2.125m đi đâu?
Blanca

Câu trả lời:


142

Bạn có thể dùng :

-XX:MaxPermSize=128m

để tăng không gian. Nhưng điều này thường chỉ trì hoãn những điều không thể tránh khỏi.

Bạn cũng có thể kích hoạt PermGen để thu gom rác

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

Thông thường điều này xảy ra khi thực hiện nhiều redeploys. Tôi ngạc nhiên khi bạn có nó bằng cách sử dụng một cái gì đó như lập chỉ mục. Sử dụng virtualvm hoặc jconsole để theo dõi không gian gen Perm và kiểm tra nó ở mức độ nào sau khi khởi động lập chỉ mục.

Có lẽ bạn nên cân nhắc đổi sang một JVM khác như IBM JVM. Nó không có Thế hệ vĩnh viễn và miễn nhiễm với vấn đề này.


Cảm ơn!! Nhưng tôi phải viết nó ra ở đâu ?? Tôi đoán trong một lần lộn xộn ở đây: tomcat / conf Tôi có sai không ??
Blanca

1
Đối với tomcat, bạn có thể tạo biến môi trường CATALINA_OPTS với giá trị các tùy chọn này được nối với nhau. Tập lệnh khởi động sẽ thêm chúng vào dòng lệnh Java trước khi khởi động tomcat. Điều này không thể được thực hiện từ cấu hình tomcat vì JVM đã được cấu hình tại thời điểm đó.
Peter Tillemans

2
Nếu đó là FreeBSD, hãy thêm các tùy chọn vào tệp /etc/rc.conf. Đầu tiên hãy đọc đoạn mã khởi động tomcat để xem thông số chính xác mà nó sẽ tìm kiếm.
Brian Knoblauch

3
Trong OpenJDK 7 CMSPermGenSweepingEnabled được phản đối ủng hộ CMSClassUnloadingEnabled
Petr Gladkikh

12

Đối với tomcat, bạn có thể tăng không gian permGem bằng cách sử dụng

 -XX:MaxPermSize=128m

Đối với điều này, bạn cần tạo (nếu chưa tồn tại) một tệp có tên setenv.sh trong thư mục tomcat / bin và bao gồm dòng sau trong đó

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

Tham khảo: http://wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat


1
export JAVA_OPTS="-XX:MaxPermSize=128m"làm việc cho tôi với Clojure + Lein repl
Jeff

3

Bạn cũng có thể tăng nó thông qua các đối số VM trong IDE của mình. Trong trường hợp của tôi, tôi đang sử dụng Tomcat v7.0 đang chạy trên Eclipse. Để thực hiện việc này, hãy nhấp đúp vào máy chủ của bạn (Tomcat v7.0). Nhấp vào liên kết 'Mở cấu hình khởi chạy'. Chuyển đến tab 'Đối số'. Thêm -XX: MaxPermSize = 512m vào danh sách đối số VM. Nhấp vào 'Áp dụng' và sau đó nhấp vào 'OK'. Khởi động lại máy chủ của bạn.


3

nếu bạn phát hiện ra rằng cài đặt bộ nhớ không được sử dụng và để thay đổi cài đặt bộ nhớ, tôi đã sử dụng tomcat7w hoặc tomcat8w trong thư mục \ bin. Sau đó, thông báo sau sẽ bật lên:

màn hình tomcat

Nhấp vào tab Java và thêm các đối số. Khởi động lại tomcat


@ Jérémie BI không có đủ điểm danh tiếng để thêm hình ảnh trực tiếp.
Kevin STS

0

Trên các bản phân phối giống Debian, bạn thiết lập /etc/default/tomcat[67]

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.