2011-06-29 25 views
7

Một Apache Tomcat (Atlassian Confluence) dụ được bắt đầu sử dụng các tùy chọn Java sau:Java sử dụng nhiều bộ nhớ hơn so với bộ nhớ phân bổ

JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=256m -Djava.awt.headless=true " 

Tuy nhiên tôi thấy rằng sau khi khởi động nó một cách nhanh chóng ăn qua hầu hết các 1GB bộ nhớ có sẵn trên máy chủ ảo của tôi.

PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
6082 root  19 0 1105m 760m 16m S 0.7 74.2 5:20.51 java 

Không phải bộ nhớ tiêu thụ tổng thể (heap + PermGen) vẫn ở dưới mức được chỉ định bằng -Xmx? Một trong những vấn đề này gây ra là tôi không thể tắt máy chủ bằng cách sử dụng kịch bản tắt vì nó cố gắng sinh ra một JVM với 256MB bộ nhớ không thành công vì nó không có sẵn.

+0

Có thể có một số phân bổ bộ nhớ riêng đang diễn ra thông qua JNI hoặc 'ByteBuffer' với phân bổ trực tiếp. –

+0

@Steve Tayor Có lẽ ... Tôi không biết Confluence là tốt để biết nếu nó đang làm điều đó. Tôi đã đăng câu hỏi trên diễn đàn Confluence nhưng chưa có câu trả lời nào. – vahidg

Trả lời

3

Tổng mức tiêu thụ bộ nhớ Tomcat phải được tính tại NO LESS THAN Xmx + XX:MaxPermSize (trong trường hợp của bạn là 768MB), nhưng tôi nhớ lại khi thấy một nơi nào đó có thể vượt qua điều đó. Xmx chỉ là khoảng trống, và PermGen nằm ngoài vùng heap (loại).

+4

heap + permgen + jvm overhead (số không xác định) –

+0

@Wesho: Vâng, nó có thể chạy trong 512MB, bạn chỉ cần điều chỉnh tất cả các cài đặt của bạn cho phù hợp. Có lẽ 'Xms256m, XX: MaxPermSize = 128m' sẽ làm điều đó. –

5

Ví dụ: một thư viện gốc có thể dễ dàng cấp phát bộ nhớ ngoài vùng heap Java.

Direct ByteBuffer cũng thực hiện điều đó: http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html

Nội dung của bộ đệm trực tiếp có thể cư trú bên ngoài đống rác-thu bình thường, và vì vậy tác động của chúng trên bộ nhớ của một ứng dụng có thể không rõ ràng.

Có những lý do chính đáng để phân bổ ByteBuffers trực tiếp lớn.

http://ehcache.org/documentation/offheap_store.html

+0

Cảm ơn thông tin này. – vahidg

Các vấn đề liên quan