Đôi khi, lỗi này chỉ ra rằng bộ nhớ vật lý và trao đổi trên máy chủ thực sự được sử dụng đầy đủ!
Gần đây tôi đã gặp vấn đề này trên một máy chủ chạy RedHat Enterprise Linux 5.7 với 48 GB RAM. Tôi thấy rằng thậm chí chỉ chạy
java -version
gây ra lỗi tương tự, mà xác định rằng vấn đề không cụ thể đối với ứng dụng của tôi.
Đang chạy
cat /proc/meminfo
đã báo cáo rằng MemFree và SwapFree đều tương ứng dưới 1% giá trị MemTotal và SwapTotal:
MemTotal: 49300620 kB
MemFree: 146376 kB
...
SwapTotal: 4192956 kB
SwapFree: 1364 kB
Việc dừng một vài ứng dụng đang chạy khác trên máy đã mang lại con số bộ nhớ miễn phí:
MemTotal: 49300620 kB
MemFree: 2908664 kB
...
SwapTotal: 4192956 kB
SwapFree: 1016052 kB
Tại thời điểm này, một phiên bản Java mới sẽ khởi động ổn và tôi đã có thể chạy ứng dụng của mình.
(Rõ ràng, đối với tôi, đây chỉ là một giải pháp tạm thời; tôi vẫn có một nhiệm vụ nổi bật là kiểm tra kỹ hơn các quy trình đang chạy trên máy đó để xem liệu có thể làm gì để giảm mức sử dụng bộ nhớ danh nghĩa mà không phải dùng đến việc dừng các ứng dụng.)