美文网首页
生产环境出现大量空闲线程排查

生产环境出现大量空闲线程排查

作者: blueSkyBird | 来源:发表于2017-12-27 08:39 被阅读0次

    通过JVM堆栈出现大量WAITING线程的原因。

    • 使用ps -ef|grep tomcat8080 找到运行项目的进程id

    • 使用jstack命令把该进程的堆栈导进一个文件

    • 使用

     grep java.lang.Thread.State dump | awk '{print $2$3$4$5}' | sort | uniq -c
    

    命令查看线程状态分类

    • 根据WAITING状态去查找,找到


      image.png
    image.png

    最后排查到两个问题。

    1. 每个模块都自己新建自己的线程池,线程池创建不合理,导致空闲线程比较多
    2. 在代码中使用ExecutorService提交线程任务后,未关闭。

    总结:

    1. 线程池这种底层资源的提供,没有特殊情况下应该统一提供。而不是每个模块都自己来新建个线程池。
    2. 需要合理配置线程池。
    3. 创建线程池或者新启动线程时,最好给线程起个名字,这样出现问题好定位

    配置线程池的策略:

    相关文章

      网友评论

          本文标题:生产环境出现大量空闲线程排查

          本文链接:https://www.haomeiwen.com/subject/oxuygxtx.html