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的分析页面
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 参考文献
标签:JVM,Thread,诊断,thread,Threads,线程,Tab,OutOfMemoryError,Fastthread From: https://www.cnblogs.com/johnnyzen/p/17890873.html排除/解决 OutOfMemoryError:无法创建新的本机线程