服务运行一段时间后,接口就无法访问,,接口ping 和telnet ip port都能通,,只有重启Tomcat才能恢复

一:配置环境:centos7 + redis +docker 起的web服务

现象:服务运行一段时间后,接口就无法访问,,接口ping 和telnet ip port都能通,,只有重启Tomcat才能恢复

遇到这个情况,首先会想到可能jvm内存不足,溢出或者没有被合理gc  ;这时候莫要冲动去一意孤行的设置tomcat调整jvm大小,因为一般情况下,tps不是特别high 默认的配置足够支持并发的

二、操作流程:

1:进去wx-oas 实例容器内 docker-enter wx-oas。

序号 操纵指令指令解释
1:进去wx-oas实例容器内docker-enter wx-oas。此操作是因为单个服务实例出现问题能精确定位
2:cd到实例usr/local 并进入的jdk/bin目录 下,查看jvm的堆栈信息
3:jps 查看所有java 进程server 。 top -H -p 11是看次pid下面所有的子线程status s表示休眠  
4:jstack -l pid 查看为pid的堆栈信息快照,jstack -l pid > info.txt 输出txt文件  
从而定位到原来是代码写的bug,没有redis.close,而且更友好的是,人家把哪一行都打印出来了,不是人家tomcat默认的不够哈

ps:把操作过的history贴一下

cd /usr/local/
   86  ls
   87  cd jdk1.8.0_121/
   88  ls
   89  cd bin/
   90  ls
   91  ./jps 
   92  top
   93  ./jps
   94  top -H -p 11
   95  ls
   96  top -H -p 12
   97  top -H -p 11
   98  ls
   99  ./jstack -l 11 >info.txt
  100  ./jstack -l 11 >info2.txt
  101  ./jstack -l 12 >info3.txt
  102  ./jstack -l 12 >info4.txt
  103  more info.txt 
  104  grep 'extracme' info.txt 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值