栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

Thread Dump的作用是什么?如何产生Thread Dump?

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Thread Dump的作用是什么?如何产生Thread Dump?

Thread Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都有及时生成显示所有线程在某一点状态的thread-dump的能力。

Thread Dump特点:

  • 能在各种操作系统下使用
  • 能在各种Java应用服务器下使用
  • 可以在生产环境下使用而不影响系统的性能
  • 可以将问题直接定位到应用程序的代码行上

Thread Dump能诊断的问题包括:

  • 查找内存泄露,常见的是程序里load大量的数据到缓存
  • 发现死锁线程

有很多方式可用于获取ThreadDump, 下面列出一部分获取方式:

操作系统命令获取ThreadDump:

Windows:

1.转向服务器的标准输出窗口并按下Control + Break组合键, 之后需要将线程堆栈复制到文件中;

UNIX/ Linux:

首先查找到服务器的进程号(process id), 然后获取线程堆栈.

1. ps –ef  | grep java

2. kill -3 <pid>

注意:一定要谨慎, 一步不慎就可能让服务器进程被杀死。kill -9 命令会杀死进程。

 

JVM 自带的工具获取线程堆栈:

JDK自带命令行工具获取PID,再获取ThreadDump:

1. jps 或 ps –ef|grepjava (获取PID)

2. jstack [-l ]<pid> | tee -a jstack.log  (获取ThreadDump)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/263931.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号