故障分析 | 让top命令直接显示Java线程名?-- 解析OpenJDK的一个bug修复

本文探讨了如何使用Linux的top命令配合jstack来获取Java应用程序中的线程详细信息,特别是线程名称,这对于诊断Java应用的性能问题非常有用。文章还分析了不同JDK版本对这一操作的支持情况。

作者:阎虎青

DBLE 开源项目负责人,负责分布式数据库中间件研发工作;持续专注于数据库方面的技术,始终在一线从事开发;对数据复制、读写分离、分库分表有深入的理解和实践。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


话说有一天,dble 团队的测试小伙伴要做性能方面的调优,需要了解调优 dble 的原理与方法,于是我就丢给他一份文档让他好好学习一下:

https://actiontech.github.io/dble-docs-cn/2.Function/2.18_performance_observation.html。

测试同学充满鄙夷的看完了文档,然后问我,图中这个命令的目的是做什么的?

用 Linux 原生的 top 命令不就行了么?你费那事干啥?

表现的机会来了,于是我很耐心的告诉他,原生 top 命令虽然对 cpu 统计的更加准确,但是对 Java 线程并不友好,线程名都显示 java ,和应用实际的线程名对不起来,需要通过 jstack 来核对一下,就像这样的,一边说着,我一边开始了演示。

首先,top 命令提供了一个正在运行的动态实时视图。它可以显示系统摘要信息以及当前由 Linux 内核 管理的进程或线程列表。显示的这些信息的类型、顺序是可配置并且持久化。。。(“说重点,别凑字数”,测试同学打断了滔滔不觉的我)。

好的,说重点,默认 top 显示的是单个进程中所有线程的指标的总和,我们可以通过参数 -H 来指定显示线程的信息,另外参数 -p 还可以指定具体的进程 id 。

执行看看 :

top -H -p `pidof java`
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值