Đó là một ứng dụng web Java trên Websphere6.1, Solaris 10, JDK 1.5.0_13. Chúng tôi đặt kích thước heap tối đa là 1024m. jmap cho thấy trạng thái heap là lành mạnh. Việc sử dụng bộ nhớ heap chỉ là 57%. Không có OutOfMemory nào cả.Làm thế nào để tiến trình Java với -Xmx1024m chiếm bộ nhớ cư trú 3GB?
Nhưng chúng tôi thấy RSS rất cao (3GB) cho quá trình java này từ ps. pmap hiển thị khối bộ nhớ riêng 1.9G.
3785: /dmwdkpmmkg/was/610/java/bin/java -server -Dwas.status.socket=65370 -X Address Kbytes RSS Anon Locked Pgsz Mode Mapped File ... 0020A000 2008 2008 2008 - 8K rwx-- [ heap ] 00400000 1957888 1957888 1957888 - 4M rwx-- [ heap ] 8D076000 40 40 40 - 8K rw--R [ stack tid=10786 ] ...
Đây có phải là lỗ hổng bộ nhớ heap trong mã gốc không? Cách tiếp cận nào được khuyến khích để tìm ra nguyên nhân gốc rễ?
Chúng hữu ích. Trong khi -memorycheck dường như chỉ có sẵn cho IBM JDK? Không có IBM JDK trên Solaris, chỉ cần SUN JDK, phải không? – gengmao
Không biết, tôi không có kinh nghiệm với Solaris, nhưng có thể không ... Có lẽ IBM JDK đang đến với Websphere vì nó cũng từ IBM. Đó là những gì tôi nghĩ đến. – MicSim