线上服务器CPU彪高的调试方式

点击返回上层目录

原创声明:作者:陈咬金、 博客地址:https://www.cnblogs.com/zh94/

原文来自于楼主印象笔记,点击查看原文

线上服务器CPU彪高的调试方式

1. 使用TOP获取对应的CPU彪高的进程ID

2. top -p 8948 -H 查看8948进程所对应的所有线程,查看引起CPU彪高的线程PID,此处为9037

3. jstack 8948 >/home/xiaoi/8948thread1.txt 打印当前的线程堆栈信息至txt文件当中(尽可能的将2,3步骤同时进行,否则可能出现top所查看得到的线程ID,在导出堆栈信息时已经不再引起CPU彪高了)

4.将所得到的线程PID转换为16进制,如此处的9037转换为16进制后的结果为234d(堆栈信息中存储的是16进制的线程ID,而我们在通过TOP获取到的线程ID为10进制的ID,故需要做一下转换操作)

5.得到对应的转换为16进制后的线程ID为 234d,此时使用vim 查看对应的8948thread1.txt堆栈文件,直接搜索 ?234d 查看对应的234d线程的堆栈信息,发现线程是持续的
RUNNABLE运行状态,查看异常可知是代码底层所调用的谷歌文本对比插件所引起的死循环导致

使用 出现下述提示:说明当前执行jstack 8948命令的用户不是8948这个进程启动时的用户,重新切换用户为创建该进程的用户后,再执行该命令则执行成功; jstack 8948
8948: well-known file is not secure

posted @   陈咬金  阅读(306)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示