×

Tomcat内存溢出快速解决办法

96
Villain丶Cc
2018.05.27 10:06 字数 707

cd /opt/apache-tomcat-6.0.29(这是你linux上存放tomcat的路径)

这中间你要去查看日志到底是tomcat是什么问题,定位到那个tomcat的问题。

cd /bin

使用Tomcat关闭命令(一般在运行的项目这样停不下来的,我反正没停下来过)

./shutdown.sh

查看Tomcat是否以关闭,如果tomcat显示内存过大,没有关掉可以使用ps命令:

ps -ef|grep java 

或者

ps afx|grep java  

(查询后会看到多个tomcat进程,你要查看日志看是那一个内存溢出了,你不要乱杀错了)

#如果还存在,用kill; kill -9 pid #pid 为相应的进程号

最后,启动Tomcat 

./startup.sh

(这样就解决了tomcat的内存溢出问题,这只是解决了当前的问题,不能解决根本问题,如果你不解决你可能会过一段时间就会重启tomcat,我这样操作只是因为我们的项目已经上线了,停的时间太长会被投诉的,不能在在此停留太多时间,这不是最好的解决办法,最好的解决办法是你处理完后,将日志下载到本地,在去查看日志分析到底是什么原因导致了tomcat的内存溢出,从根本上解决问题,如果不知道怎么下载日志就往后面看吧)

root     27108     1  3 May02 ?        01:31:56 /usr/java/jdk1.6.0_45/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-6.0.29/conf/logging.properties -server -Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=256m -Djava.endorsed.dirs=/opt/apache-tomcat-6.0.29/endorsed -classpath /opt/apache-tomcat-6.0.29/bin/bootstrap.jar -Dcatalina.base=/opt/apache-tomcat-6.0.29 -Dcatalina.home=/opt/apache-tomcat-6.0.29 -Djava.io.tmpdir=/opt/apache-tomcat-6.0.29/temp org.apache.catalina.startup.Bootstrap start

*如果你想直接干掉Tomcat,你可以使用kill命令,直接杀死Tomcat进程  


kill -9  27108  


如果出现以下信息,则表示Tomcat已经关闭    

root     27108     1  3 May02 ?        08:30:30 [java]   

在logs查看tomcat运行日志

tail -f catalina.out

通过关键字搜索查看日志

cat jeewx-2018-05-04.log | grep 验证码

查看固定时间日志

cat jeewx-2018-05-04.log | grep   '2015-09-20 18:50:15'

查看最近50行日志

tail -n 50 -f catalina.out

如果向本地查看日志就需要上传和下载,需要使用rz和sz命令,如果linux上面没有这两个命令工具,就需要安装,可以使用yum安装,运行命令yum install lrzsz

如果安装完成就可以使用rz上传本地文件到linux平台,使用sz命令从linux平台下载到本地。

工作总结
Web note ad 1