码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [JVM] 应用诊断工具之Fastthread(在线诊断)


    目录

    • 0 序言
    • 1 操作使用
      • Step1 上传thread-dump文件,等待解析完成
      • Step2 分析页面
        • Step2.1 Thread Dump - Intelligence Report(线程Dump - 智能报告) Tab
        • Step2.2 Total Threads count(总线程数统计) Tab
        • Step2.3 Thread Pools(线程池) Tab
        • Step2.4 Daemon vs non-Daemon(守护线程 vs 非守护线程) Tab
        • Step2.5 Threads with identical stack trace(具有相同堆栈跟踪的线程) Tab
        • Step2.6 Last executed methods(最近执行的方法) Tab
        • Step2.7 CPU consuming threads(消耗CPU的线程) Tab
        • Step2.8 Blocking Threads - Transitive Graph(阻塞线程-传递图) Tab
        • Step2.9 GC Thread(GC线程) Tab
        • Step2.10 Threads Stack Length(线程栈的长度) Tab
        • Step2.11 Complex Deadlock(复杂的死锁) Tab
        • Step2.12 Deadlock(死锁) Tab
        • Step2.13 Finalizer Thread(终结器线程) Tab
        • Step2.14 Exception(异常) Tab
        • Step2.15 Flame Graph(火焰图像) Tab
        • Step2.16 Bottom up Call Stack Tree(自底向上调用堆栈树) Tab
        • Step2.17 My Patterns(Βeta)(我的模式(BETA)) Tab
    • X 参考文献
    回到顶部(Back to Top)

    0 序言

    • 背景

    近期生产系统遇到了一个线程方面的问题,目前根因已定位到。现将fastthread这一Java应用【线程诊断】工具做一小结,便于以后快速使用

    • 博主我遇到的线程问题:java.lang.OutOfMemoryError: unable to create new native thread

    java.lang.OutOfMemoryError 有 8 种类型。这8种类型中java.lang.OutOfMemoryError: unable to create new native thread 是常见的类型之一。OutOfMemoryError当应用程序无法创建新线程时会生成这种类型。
    由于以下两个原因,可能会出现此错误:

    • 内存中没有空间容纳新线程。
    • 线程数超出操作系统限制。

    • FastThread

      • FastThread是一款针对Java线程分析的工具,可以帮助用户分析线程转储文件,查找线程问题,识别性能瓶颈等。
      • https://fastthread.io/
    • 补充说明:

    • 如果你已获取到java应用程序的thread dump文件,其实通过人工分析该文件也能分析出不少问题。

    如何人工分析thread dump文件?参见:[JVM] Java Thread Dump 分析 - 博客园/千千寰宇

    • FastThread 只是将thread dump文件的内容进行了统计性质的【数据可视化分析】,这么看你就理解了。
    • Fastthread是一个Web在线分析工具,而非本地离线的分析工具,如果有这方面担忧的,请放弃使用。
      绝大多数情况下,thread dump也不会泄露什么机密。里面全都是堆栈信息,你自己打开细看便知~
    回到顶部(Back to Top)

    1 操作使用

    Step1 上传thread-dump文件,等待解析完成

    解析成功后,自动跳转至 Step2的分析页面

    https://fastthread.io/ft-thread-report.jsp

    Step2 分析页面

    • Thread Dump - Intelligence Report / Thread Count Summary / Total Threads count / Thread Pools /

    各个Tab详细看看:

    Step2.1 Thread Dump - Intelligence Report(线程Dump - 智能报告) Tab

    Step2.2 Total Threads count(总线程数统计) Tab

    Step2.3 Thread Pools(线程池) Tab

    Step2.4 Daemon vs non-Daemon(守护线程 vs 非守护线程) Tab

    Step2.5 Threads with identical stack trace(具有相同堆栈跟踪的线程) Tab

    点击【WARN】提示的 their stack trace链接:

    Step2.6 Last executed methods(最近执行的方法) Tab

    Step2.7 CPU consuming threads(消耗CPU的线程) Tab

    Step2.8 Blocking Threads - Transitive Graph(阻塞线程-传递图) Tab

    Step2.9 GC Thread(GC线程) Tab

    Step2.10 Threads Stack Length(线程栈的长度) Tab

    Step2.11 Complex Deadlock(复杂的死锁) Tab

    Step2.12 Deadlock(死锁) Tab

    Step2.13 Finalizer Thread(终结器线程) Tab

    Step2.14 Exception(异常) Tab

    Step2.15 Flame Graph(火焰图像) Tab

    Step2.16 Bottom up Call Stack Tree(自底向上调用堆栈树) Tab


    Step2.17 My Patterns(Βeta)(我的模式(BETA)) Tab

    回到顶部(Back to Top)

    X 参考文献

    • Fastthread 【推荐】
    • Troubleshoot OutOfMemoryError: Unable to Create New Native Thread - Dzone.com 【推荐】

    排除/解决 OutOfMemoryError:无法创建新的本机线程

    • [JVM] Java Thread Dump 分析 - 博客园/千千寰宇 【推荐】
  • 相关阅读:
    python读取表格数据xlrd
    如何将图片进行竖直拼接(全景拼接)
    Day3祭总结
    10步开启SAFe敏捷发布列车
    【编译原理】机测笔记
    DSP/BIOS的基本介绍
    python 数的计算
    【Qt控件之QLabel】用法及技巧
    苹果高管迷惑发言:“侧载应用是网络罪犯最好的朋友”
    发现Kafka bug
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/17890873.html
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号