2017-10-20 119 views
0

我老是感到catalina.out以下錯誤約5之後 - 第6小時的運轉我的應用程序:本地MMAP錯誤

There is insufficient memory for the Java Runtime Environment to continue. 

Native memory allocation (mmap) failed to map 503226 bytes for committing reserved memory. 

An error report file with more information is saved as: 

/tmp/hs_err_pid1.log 

我使用Tomcat 8 AWS的Linux t2.medium實例中運行(通用) 。只有1個應用程序正在運行,根本沒有其他應用程序。 這是什麼問題?

這是一個完整pid log file

感謝

回答

0

這種情況發生在OS說,有可用的,當後來該內存無法分配虛擬內存。

我會確保你有足夠的交換空間,並且你的JVM(這不僅僅是你的堆大小)足夠小,以適應這個實例。

編輯:我可以看到

內存:4K頁,物理4047964k(101228k免費),交換0K(0K免費)

這意味着你的機器只有4 GB的沒有交換,而且它幾乎已經沒有了記憶。您或者需要減少內存使用量(雖然對於我來說不太明顯)或者使用更多的內存,至少在您研究如何縮減消耗量之前。

+0

您正在使用大部分內存(3.8 GB),因此添加一些交換空間將有所幫助,可能就足夠了。 –

+0

@Kayaman使用更大的實例。 4 GB這些天內存不是很多https://www.solid-run.com/product/cubox-i4x4/ –

+0

很奇怪,CMIIW,堆大小(如果沒有配置)會默認爲1GB,對嗎?根據日誌,使用了3.8GB內存,如果堆只佔用了1GB,誰拿了2.8GB? JVM的哪一部分使用了它?還是JVM之外的另一個進程? – musicsquad