2015-06-23 30 views
26

Tôi có một tomcat như máy chủ web của tôi, nó dừng lại xuống tự động với Lỗi đưa ra -Java HotSpot (TM) 64-Bit Server VM cảnh báo

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f16a8405000, 12288, 0) failed; error='Cannot allocate memory' (errno=12) 

tôi cần phải figured it out những gì thực sự đã xảy ra? và cảnh báo nào có nghĩa là gì?

+1

thể trùng lặp của [Làm thế nào để giải quyết? "java.io.IOException: lỗi = 12, không thể cấp phát bộ nhớ" gọi Runtime # exec()] (http://stackoverflow.com/questions/1124771/how-to-solve-java-io-ioexception-error-12-cannot-allocate-memory-calling-run) – legoscia

+0

Hệ điều hành là gì? Liệu nó có đủ tài nguyên (RAM?) .. Trên Linux, hãy xem http://stackoverflow.com/questions/29250953/jmeter-out-of-memory-on-linux. – Jayan

+0

ubuntu 14.04 OS, Máy chủ 16 GB –

Trả lời

22

Không đủ bộ nhớ cho Môi trường chạy thử Java để tiếp tục.

Phân bổ bộ nhớ riêng (malloc) không thể phân bổ xxxxx byte để cam kết bộ nhớ đã dành riêng.

Có thể lý do:
1. Hệ thống này ra khỏi RAM vật lý hoặc hoán đổi không gian
2. Trong chế độ 32 bit, giới hạn kích thước quá trình bị trúng

giải pháp có thể:
1 .Reduce tải bộ nhớ trên hệ thống
2. Tăng bộ nhớ vật lý hoặc không gian hoán đổi
3.Kiểm tra xem cửa hàng sao lưu trao đổi có đầy đủ
4.Sử dụng 64 bit Java trên hệ điều hành 64 bit
5.Decrease Java kích thước heap (-Xmx/-Xms)
6.Decrease số Java Các luồng
7.Decrease Java kích thước thread stack (-Xss) mã bộ nhớ cache
8.Set lớn hơn với -XX: ReservedCodeCacheSize =

nếu bạn đang ở trên JAVA-8, xin vui lòng ref: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize

+6

Câu trả lời này là bản sao/dán nội dung được đề xuất trong tệp nhật ký do JVM tạo. Nó sẽ có được trung thực hơn để trích dẫn tập tin này ... Nhưng nó hoạt động (tôi tăng số lượng RAM vật lý trên máy tính, một máy ảo trên thực tế). Cảm ơn! –

9

Java không thể phân bổ đủ bộ nhớ, tức là nó không phải là giới hạn heap của Java, mà là do không có nhiều bộ nhớ hơn cho hệ điều hành Java. Kiểm tra xem máy có đang hết bộ nhớ không. Và đầu tiên sạch ram hoặc tăng ram sau đó kiểm tra nếu một lần nữa có một số lỗi bộ nhớ sau đó tăng kích thước heap:

-Xms128m min (kích thước khối xếp)

-Xmx512m max (kích thước khối xếp)

-XX:MaxPermSize max (kích thước perm)

+0

mastadminchat03 @ PRDMASTCHAT03: ~ $ miễn phí: tổng = 14361104, được sử dụng: 6188292, miễn phí: 8172812, được chia sẻ: 428, bộ đệm = 57396, được lưu trong bộ nhớ cache = 1233592 –

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