Chúng tôi đã gặp phải lỗi Out of Memory trong máy chủ ứng dụng của chúng tôi đôi khi. Chúng tôi thấy kích thước heap đã sử dụng tăng dần cho đến khi cuối cùng nó đạt đến kích thước heap có sẵn. Điều này xảy ra sau mỗi 3 tuần, sau đó khởi động lại máy chủ là cần thiết để sửa lỗi này. Khi phân tích các vùng đống, chúng tôi thấy vấn đề là đối tượng được sử dụng trong JSP.Cách giải phóng bộ nhớ?
Các đối tượng JSP có thể là nguyên nhân thực sự của vấn đề bộ nhớ Appserver không? Làm thế nào để chúng tôi giải phóng các đối tượng JSP (Các đối tượng đang được khởi tạo bằng cách sử dụng các thẻ usebean hoặc các thẻ khác)?
Chúng tôi có một máy chủ ứng dụng Websphere được nhóm với 2 nút và IHS.
EDIT: Những phát hiện trên đây dựa trên heap-dump và nativestderr đăng nhập phân tích đưa ra dưới đây sử dụng sự hỗ trợ trợ IBM
nativestd sai lầm log phân tích:
alt text http://saregos.com/wp-content/uploads/2010/03/chart.jpg
phân tích bãi Heap:
! [Alt văn bản] [2]
Phân tích kết xuất phân tích cho thấy người thống trị ngay lập tức (2 mức tăng của nhập hastable trong hình trên)
! [alt text] [3]
Những hình ảnh cuối cùng cho thấy Dominator trước mắt là trong các đối tượng thực tế được sử dụng trong JSP.
EDIT2: Thông tin thêm có sẵn tại http://saregos.com/?p=43
Tôi nhớ lại một vấn đề rò rỉ bộ nhớ cũ liên quan đến việc triển khai của JSP chưa được biên dịch trước. Trình biên dịch mặt trời đã bị rò rỉ bộ nhớ, các JSP đã được biên dịch trên bay khi chúng được tham chiếu này cuối cùng gây ra một lỗi bộ nhớ. Giải pháp là biên dịch trước JSP trước khi triển khai. – crowne
nhưng trong trường hợp của chúng tôi sự cạn kiệt đống là dần dần .. bộ nhớ hết trong 3 tuần. Nó không có vẻ giống như một vấn đề biên dịch trước. Bên cạnh đó chúng tôi làm biên dịch trước các JSP của chúng tôi – sarego
3 tuần - không có vấn đề gì được thực hiện trong ứng dụng? Bạn có sử dụng bất kỳ công cụ hẹn giờ nào liên quan không? Âm thanh như một hành động định kỳ không được phát hành đúng cách. –