java 內存 不足 解決方案


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

 

淡定,不要着急

 

這個問題引起的原因是:服務器上物理內存太小,大部分都是應為程序太多,內存吃緊,而給jvm分配的內存太大(java程序啟動需要的內存,linux不能給),最好調整java程序jvm內存吧(測試環境下)

解決方案:

1.linux上利用top命令查看所有進程,看看那些進程占用的內存太大了,選擇性的kill,釋放內存,但這個需要了解清楚,安歇進程是不需要的。

2.調整tomca中對jvm內存的配置,因為jvm主要內存就是指jvm堆內存。

所以解決方案:JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m"

將上述堆的最小內存-Xms256最小內存設置的更小點,舉例子:之前 -Xms2048m 。2048M太大,可能物理內存都沒那么大,那么改成-Xms256(我調成256),后期可以根據需要調整,或者加內存條。

 

我通常使用的第二種決絕方案,控制在自己應用程序范圍內。

JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m" 放在linux的那個地方呢?

cd 到tomcat的/bin目錄下,找到catalina.sh文件
---------------------
作者:程序員YONG
來源:CSDN
原文:https://blog.csdn.net/qq_17231297/article/details/80663416
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM