cuixiaoxing2000 2015-07-30 04:23 采纳率: 0%
浏览 5929

急求帮助,centOS下tomcat的java进程无故终止

求助!

目前环境centOS6.6+Nginx1.8.0+tomcat7.0.42+mysql5.6.24

另外还装了安全狗和clamd杀毒软件。

碰到的问题是tomcat的java进程隔几天会无故终止。tomcat的catalina日志里没有
tomcat停止的日志。操作系统日志/var/adm/messages里也没有tomcat的java进程停止的日志。 tomcat的home目录下也没有找到java虚拟机崩溃的日志。
打开进程日志,看到tomcat的java进程收到终止信号停止,java进程有X标志。

cat root __ 0.00 secs Thu Jul 30 09:48
sh root __ 0.00 secs Thu Jul 30 09:48
egrep root __ 0.00 secs Thu Jul 30 09:48
cat root __ 0.00 secs Thu Jul 30 09:48
sh root __ 0.00 secs Thu Jul 30 09:48
awk root __ 0.00 secs Thu Jul 30 09:48
head root __ 0.00 secs Thu Jul 30 09:48
cat root __ 0.00 secs Thu Jul 30 09:48

java S X root __ 2728.72 secs Wed Jul 29 10:38

du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
du                      root     __         0.00 secs Thu Jul 30 09:48 
sh                      root     __         0.00 secs Thu Jul 30 09:48 
awk                     root     __         0.00 secs Thu Jul 30 09:48 
head                    root     __         0.00 secs Thu Jul 30 09:48 
cat                     root     __         0.00 secs Thu Jul 30 09:48 
sh                      root     __         0.00 secs Thu Jul 30 09:48 
awk                     root     __         0.00 secs Thu Jul 30 09:48 
head                    root     __         0.00 secs Thu Jul 30 09:48 
cat                     root     __         0.00 secs Thu Jul 30 09:48 
sh                      root     __         0.00 secs Thu Jul 30 09:48 
grep                    root     __         0.00 secs Thu Jul 30 09:48 
grep                    root     __         0.00 secs Thu Jul 30 09:48 
ps                S     root     __         0.02 secs Thu Jul 30 09:48 

但是在这个时间段并没有kill发送信号,那这个信号是由哪个进程发起的,有没有办法查看。
我最初怀疑过操作系统内存耗尽,tomcat进程被OOM_killer杀死了,但是操作系统日志/var/adm/messages里会有out of memory杀进程的日志,我在虚拟机上测试,/var/adm/messages里是有相应日志。下面是free -m的输出:
total used free shared buffers cached
Mem: 32085 26304 5780 1 258 21274
-/+ buffers/cache: 4771 27313
Swap: 16111 50 16061
也怀疑过ssh连接异常关闭导致tomcat进程被杀,但是我在虚拟机上并没有模拟重现故障。
因为centOS ssh登录采用公钥秘钥的方式,并且在故障时间段进程日志里并没有找到kill命令,暂时排除人为强杀进程的情况。
不知道现在的情况我能通过什么方式来定位故障原因。求指点。
另外在tomcat的localhost日志里,有类似如下的异常日志:
Jul 30, 2015 12:14:27 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [] threw exception [javax.servlet.ServletException: javax.servlet.jsp.JspException: Problem accessing the absolute URL "http://www.d1wudal.com:80/getHomeItem.action?navBz=1". java.io.FileNotFoundException: http://www.d1wudal.com:80/getHomeItem.action?navBz=1] with root cause
java.io.FileNotFoundException: http://www.d1wudal.com:80/getHomeItem.action?navBz=1
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1625)
at org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireReader(ImportSupport.java:331)
at org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:241)
at org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:161)
at org.apache.jsp.index_jsp._jspx_meth_c_005fimport_005f0(index_jsp.java:177)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:109)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96)
at com.st.core.filter.Struts2Filter.doFilter(Struts2Filter.java:24)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
我在虚拟机上模拟重现了这个异常,是由客户端的异常请求造成的。我也怀疑过遭到了类似DDOS的攻击,但是查看了系统的连接数量应该不足以让tomcat进程终止。
麻烦帮忙分析下!

  • 写回答

3条回答 默认 最新

  • threenewbee 2015-08-01 22:13
    关注

    提示文件没找到,你高并发的情况下有对文件的读写么

    评论

报告相同问题?

悬赏问题

  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊