Linux系统部署的tomcat服务运行一段时间后访问慢或者无法访问的问题

1、查看tomcat服务应用日志路径下*/logs/catalina.out的日志输出
tail -100 calalina.out
看到如下报错:
2018/04/06-19:24:16 >> ERROR >> catalina-exec-3981 >> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1515) >> 
java.lang.OutOfMemoryError: PermGen space
2018/04/06-19:26:03 >>  INFO >> catalina-exec-3982 >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:203) >> 19:26:03.114 [catalina-exec-3982] INFO  monitoring - remoteAddr = 130.81.10.3, request = / GET: 2918 ms, erreur, 0 Ko
2018/04/06-19:26:03 >> ERROR >> catalina-exec-3982 >> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1515) >> 
java.lang.OutOfMemoryError: PermGen space
可以断定是内存溢出。
2、查看linux系统对应用的进行限制数
ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 1024
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 212992
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
进程的open files 最大为1024个文件,默认
3、使用root用户查看linux系统 当前进程打开了多少个文件句柄
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
4192 67896
打开文件4192,进程67896
查看进程
ps -ef |grep 67896
webuser   67896      1 52 Apr03 ?        3-14:02:26 /usr/java/jdk1.7.0_79/bin/java -Dnop -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms1024m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=128m -javaagent:*/appdynamics/AppServerAgent/javaagent.jar -Djava.endorsed.dirs=*/tomcat-8.0.30/endorsed -classpath */tomcat-8.0.30/bin/bootstrap.jar:*/tomcat-8.0.30/bin/tomcat-juli.jar -Dcatalina.base=*/tomcat-8.0.30 -Dcatalina.home=*/tomcat-8.0.30 -Djava.io.tmpdir=*/tomcat-8.0.30/temp org.apache.catalina.startup.Bootstrap start
找到指定进程java打开文件数4192,远超过1024,溢出。
将内存由2C/12G 扩成 4C/12G
将tomcat/bin/calalina.sh配置
调整为JAVA_OPTS="-Xms2048m -Xmx4096m -XX:PermSize=512m -XX:MaxPermSize=1024m"
然后重启观察

你可能感兴趣的:(tomcat,tomcat,java)