tomcat启动异常:Java HotSpot(TM) 64-Bit Server VM warning: INFO
tomcat启动异常
Java HotSpot(TM) 64-Bit Server VM warning: INFO.md
异常详细
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006fff80000, 2863661056, 0) failed; error=’Cannot allocate memory’ (errno=12)
There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (malloc) failed to allocate 2863661056 bytes for committing reserved memory. # An error report file with more information is saved as: # /home/raini/IdeaProjects/spark_mllib/hs_err_pid19206.log
异常原因
服务器上物理内存太小,大部分都是应为程序太多,内存吃紧,而给jvm分配的内存太大(java程序启动需要的内存,linux不能给),最好调整java程序jvm内存吧(测试环境下)
解决办法
关闭不必要的进程
linux上利用top命令查看所有进程,看看那些进程占用的内存太大了,选择性的kill,释放内存,但这个需要了解清楚,安歇进程是不需要的
tomcat
调整tomca中对jvm内存的配置,因为jvm主要内存就是指jvm堆内存
windows下在catalina.bat的第一行添加:
Java代码 :set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m
linux下在catalina.sh的第一行添加:
Java代码 :JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m
可以根据自己机器和实际情况调整大小
示例:1G内存环境下java jvm 的參数设置參考
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
JAVA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX: NewSize=192m -XX:MaxNewSize=384m"
CATALINA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m"