随笔-在linux通过top命令查找问题线程的nid
最近比较忙,就简单写个随笔吧。
简述
对于cpu爆满问题,常常会分析是否存在问题线程,本文记录一种通过top快速找到问题线程nid的方式。
找到问题进程PID
通过top
找到问题进程,例如下面有个进程CPU占用率高达99%,他的PID=270973
。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND270973 worker 20 0 7166968 1.537g 3684 S 99.0 50.5 86501:25 java
1285003 root 20 0 14.107g 4.651g 5664 S 0 0.4 762:10.25 java
2805995 root 20 0 9.829g 2.587g 4604 S 0 0.1 3061:22 java
找到问题线程PID
通过top -p 270973 -H
查找问题线程。
其中-p 270973
表示查找指定进程270973
的信息,-H
表示线程模式。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2447223 root 20 0 3819540 1.319g 5960 S 80.3 42.1 121:25.99 ydbot-client
2447225 root 20 0 3819540 1.319g 5960 S 0.3 2.1 27:41.90 ydbot-client
2447230 root 20 0 3819540 1.319g 5960 S 0.3 2.1 27:57.98 ydbot-client
经对比,发现问题线程的PID=2447223
。
将线程PID转换为nid
线程的nid
是十六进制的,在linux系统中,通过shell命令printf
将PID
进行转换:
$ printf 0x%x 2447223
0x255777
其中0x%x
的0x
是固定字符串,%x
是printf的十六进制的转换类型。
后续分析
后续通过jstack等工具进行分析,例如:
[root@103-17-208-lg-201-k08 services]# jstack -l 11 |grep 0x255777
2019-09-10 16:18:51
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.73-b02 mixed mode):"Attach Listener" #18769 daemon prio=9 os_prio=0 tid=0x00007f64dc0d4000 nid=0x255777 waiting on condition [0x0000000000000000]java.lang.Thread.State: RUNNABLELocked ownable synchronizers:- None"Keep-Alive-Timer" #18768 daemon prio=8 os_prio=0 tid=0x00007f64c83b8000 nid=0x255777 waiting on condition [0x00007f63ec6e7000]java.lang.Thread.State: TIMED_WAITING (sleeping)at java.lang.Thread.sleep(Native Method)at sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:172)at java.lang.Thread.run(Thread.java:745)
其他分析不再赘述。
随笔-在linux通过top命令查找问题线程的nid相关推荐
- linux中top命令_Linux中的top命令指南
linux中top命令 The atop command is a tool for monitoring system resources in Linux. It displays tons of ...
- linux中top命令详解
linux的top命令里的cpu信息是什么意思呢? Cpu(s): 62.1% us, 15.9% sy,0.1% ni, 19.4% id,2.0% wa,0.1% hi,0.4% si Mem ...
- 图解linux下top命令的使用
图解linux下top命令的使用 2012-09-27 0个评论 来源:程序员文摘 收藏 我要投稿 top命令经常用来监控linux的系统状况,比如cpu.内存的使用,程序员 ...
- linux ps top 命令 VSZ,RSS,TTY,STAT, VIRT,RES,SHR,DATA的含义
linux ps top 命令 VSZ,RSS,TTY,STAT, VIRT,RES,SHR,DATA的含义 linuxpstop http://javawind.net/p131 VIRT:virt ...
- linux+top+常用参数,linux的top命令参数详细说明
Linux中的top命令是个常用的命令之一,下面由学习啦小编为大家整理了Linux的top命令参数详细说明,希望对大家有帮助! linux的top命令简介 top命令是Linux下常用的性能分析工具, ...
- Linux下top命令详解
Linux下top命令详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷 ...
- Linux 的 top命令参数详解 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
Linux 的 top命令详解 这张图是真实的阿里云云服务器上,使用了top命令之后的信息. 1.上半部分显示了整体系统负载情况 1.1 top 第一行: 从左到右依次为当前系统时间,系统运行的时间, ...
- Linux中top命令参数说明
Linux中top命令参数说明 top命令被我经常用来监控linux的当前服务器资源使用情况,是常用的性能分析工具,能够实时看到系统中各个进程的资源占用情况. top -d 3 (每三秒刷新一次) t ...
- linux 之top命令详解
http://bbs.54master.com/redirect.php?tid=272658&goto=lastpost 发表于 2008-9-21 16:31 linux 之top命令详解 ...
最新文章
- 【怎样写代码】工厂三兄弟之工厂方法模式(五):工厂方法模式扩展
- LVS +DR +keepalived高可用性web集群
- 【 FPGA 】Xilinx设计约束(XDC)中时钟约束的表示方法
- 四川网络推广浅析网站标题到底能不能修改,什么时候能修改?
- python编译器怎么运行不在路径中的py文件_对python当中不在本路径的py文件的引用详解...
- Tomcat源代码解析系列
- nginx之反向代理服务器
- Redis学习---(7)Redis 字符串(String)
- 滴滴顺风车再调整服务时间:男女用户一视同仁
- java编写正则表达式引擎_从0到1打造正则表达式执行引擎(一)
- 3ds Max2021安装步骤详解
- wpf 复制到粘贴板_将WPF UI单元复制到剪贴板
- 解决 Intel Extreme Tuning Utility(XtuService)的日志占用过大(直接删Logs或卸载)
- 如何成为一名优秀的技术工程师?
- 微信小程序苹果手机statusBarHeight状态栏高度为0
- 谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
- 你想要的样子 我都有
- 20200524西瓜视频的视频下载打开的步骤(未完成)
- 怎么取名都不队-DevOps
- 教育行业电商SaaS系统解决方案:助力企业实现经营、管理一体化
热门文章
- 免杀艺术 1: 史上最全的免杀方法汇总
- 我的世界末日之后无限法则服务器,Last Day Rules官方版
- 黑客泄露微软XP系统源代码,就连比尔盖茨的私密文件也难逃一劫
- 原生js实现QQ邮箱邮件拖拽删除功能
- java代码查询elasticsearch索引
- Ebox 的OS定制
- 用apline-linux创建的tomcat容器中查看catalina.out日志中文乱码问题解决
- 帮朋友 解决一道 LeetCode QJ上问题
- break、continue、goto
- /phalcon.zep.c:130892: error: ‘ZEND_FE_END’ undeclared here (not in a function)