系统活动线程数突增

问题描述:


系统晚上七点升级后,第二天系统使用时,线程数告警,如下图:
在这里插入图片描述

排查过程:

接收到运维反馈后,做了下几个步骤的工作:

  1. 首先判断一下对系统使用人员是否造成了实质性的影响。通过自行登录及使用收集,线程数1W左右时,对系统并未造成实质影响。
  2. 查看昨天升级内容,缩小排查范围,同时让运维通过jstack命令获取了dump快照信息 , dump信息如下:在这里插入图片描述
    最终,通过dump信息及升级内容,很快定位到问题所在, 问题代码如下:
  /**
     * get方式请求
     * @param url
     * @return 服务器返回值
     * @throws IOException
     */
    public static Response get(String url) throws IOException {
        Request request = new Request.Builder().url(url)
                .build();
        Response response = new OkHttpClient().newCall(request).execute();
        if (!response.isSuccessful())
            throw new IOException("请求有错:" + response);
        return response;
    }

每次调用get方法时,都new一个对象OkHttpClient()即每次请求都会创建一个线程池,大量并重复访问导致活动线程数不断增高。


解决方案:

使用OkHttpClient的单例模式,复用线程池。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值