0 序言

  • 背景

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

  • 博主我遇到的线程问题: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/

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

X 参考文献

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

[JVM] 应用诊断工具之Fastthread(在线诊断)的更多相关文章

  1. <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  2. <JVM下篇:性能监控与调优篇>01-概述篇-02-JVM监控及诊断工具-命令行篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  3. java jvm常用命令工具

    [尊重原创文章出自:http://www.chepoo.com/java-jvm-command-tools.html] 一.概述 程序运行中经常会遇到各种问题,定位问题时通常需要综合各种信息,如系统 ...

  4. jvm系列(七):jvm调优-工具篇

    16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化.工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗 ...

  5. java 诊断工具——Arthas

    该说不说!小编做的这些功能,最讨厌的就是优化!某些前辈大佬写的代码小辈我实在不敢恭维!那逻辑!那sql! 接下来!今天的主角就登场了,阿里巴巴最近开源出来的一个针对 java 的工具,主要是针对 ja ...

  6. Alibaba Java诊断工具Arthas之快速安装和简单使用

    Alibaba Java诊断工具Arthas简单介绍 : 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception ...

  7. (转)权威支持: 选择正确的 WebSphere 诊断工具

    权威支持: 选择正确的 WebSphere 诊断工具 原文:https://www.ibm.com/developerworks/cn/websphere/techjournal/0807_supau ...

  8. Java虚拟机(六):JVM调优工具

    工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用工具来分析jvm相关问题 ...

  9. Arthas Alibaba 开源 Java 诊断工具

    Arthas 用户文档 English Docs Arthas(阿尔萨斯) 能为你做什么? Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,A ...

  10. WebSphere应用服务器内存泄漏探测与诊断工具选择最佳实践

    内存泄漏是比较常见的一种应用程序性能问题,一旦发生,则系统的可用内存和性能持续下降:最终将导致内存不足(OutOfMemory),系统彻底宕掉,不能响应任何请求,其危害相当严重.同时,Java堆(He ...

随机推荐

  1. 【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器

    问题描述 在App Service for linux上创建一个PHP应用,通过 phpinfo() 查看PHP的扩展设置,发现JIT没有被开启, jit_buffer_size 大小为0. 那么,在 ...

  2. 2023-08-20:用go语言写算法。给定一个由'W'、'A'、'S'、'D'四种字符组成的字符串,长度一定是4的倍数, 你可以把任意连续的一段子串,变成'W'、'A'、'S'、'D'组成的随意状

    2023-08-20:用go语言写算法.给定一个由'W'.'A'.'S'.'D'四种字符组成的字符串,长度一定是4的倍数, 你可以把任意连续的一段子串,变成'W'.'A'.'S'.'D'组成的随意状态 ...

  3. RocketMQ系列(一) 基本介绍

    RocketMQ系列(一) 基本介绍 1.MQ 作用 MQ 的应用场景主要包含以下 3 个方面: 1.1.异步与解耦 当我们下了一个订单之后,订单服务会进行 RPC 同步调用 支付服务.库存服务.物流 ...

  4. 通过Nginx权限认证拦截资源

    nginx认证转发模块 Module ngx_http_auth_request_module   详细参考官网 ngx_http_auth_request_module (nginx.org) 模块 ...

  5. DeferredResult异步处理spring mvc Demo

    一.概述 spring mvc同步接口在请求处理过程中一直处于阻塞状态,而异步接口可以启用后台线程去处理耗时任务.简单来说适用场景: 1.高并发: 2.高IO耗时操作. 二.Demo Spring M ...

  6. 文心一言 VS 讯飞星火 VS chatgpt (89)-- 算法导论8.3 2题

    二.用go语言,下面的排序算法中哪些是稳定的:插入排序.归并排序.堆排序和快速排序?给出一个能使任何排序算法都稳定的方法.你所给出的方法带来的额外时间和空间开销是多少? 文心一言: 在Go语言中,以下 ...

  7. C/C++基础——引用与指针有什么区别?C++中输入输出加速

    文章目录 1 引用与指针有什么区别? 2 C++中输入输出加速 tie sync_with_stdio 应用 1 引用与指针有什么区别? 指针和引用都是地址的概念,指针指向一块内存,它的内容是所指内存 ...

  8. vscode提取扩展时出错XHR failed

    问题分析 使用cmd的ping工具尝试ping域名 marketplace.visualstudio.com 无法ping通 解决方案 1. 打开本地配置文件  C:\Windows\System32 ...

  9. umicv cv-summary1-全连接神经网络模块化实现

    全连接神经网络模块化实现 Linear与Relu单层实现 LossLayer实现 多层神经网络 不同梯度下降方法 Dropout层 今天这篇博文针对Assignment3的全连接网络作业,对前面学习的 ...

  10. Vue之阻止默认行为

    1.使用原生js实现点击右键阻止默认行为 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...