关于一次生产环境项目线程数一直增长问题排查记录

项目使用了谷歌翻译API,一日,运维监测到生产环境部署的服务线程数持续增长,于是对生产环境线程进行排查

一、首先通过查看系统线程树查看线程数最多的进程

    服务器上执行命令:pstree -p > threadNum.txt

   通过线程树文件,定位到进程下线程数最多的pid为15131

二、统计该进程下所有线程数

    服务器执行命令:ps -Tp 15131 | wc -l     

三、查看并打印该进程的堆栈信息

   服务器执行命令:jstack -l 15131 > jstack.log

 查看堆栈信息文件发现前缀为Gax的线程数已达到了1880

四、通过进程前缀与相关文件信息定位到项目内相关报错信息为谷歌翻译的相关报错

五、于是调用了相关接口发现每调用一次,服务线程数便会增加1个。于是重新仔细查看了谷歌翻译API,找到了相关说明描述

六、大概确定原因为现有代码逻辑每次请求会创建一个client,也就创建了一个线程。于是根据文档说明,重构了代码。重新部署后观察问题解决。
文章转自:关于一次生产环境项目线程数一直增长问题排查记录_Java-答学网

作者:答学网,转载请注明原文链接:http://www.dxzl8.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值