开发问题解决方案
时间和时间戳的应用场景
Netty的ByteBuf基础知识
JVM生产环境调优工具
i18n注意事项
导致缓存击穿的代码示例
CPU高的问题排查方法
服务器性能监控
复费率读写接口标准
本文档使用 MrDoc 发布
-
+
首页
CPU高的问题排查方法
1. 进容器,service-eiot-web是容器名,可以通过docker ps命令查看 ``` docker exec -it service-eiot-web bash ``` 2. 查看线程CPU,容器里面的的java进程号一般都是1 ``` top -p 1 -H ``` 3. 看哪个占用CPU高,要多观察一会儿,把CPU占用长时间较高的PID记录下来  4. 把占用CPU高的PID转为16进制,比如PID=179,对应16进制是b3,所以nid就是0xb3 转换16进制可以用科学计算器,或者在这个网址进行 https://it-tools.tech/base-converter 5. 用jstack命令查看堆栈信息 ``` jstack 1 | grep -A 100 nid=0xb3 ``` 6. 一般堆栈信息有可能出现两种情况: - GC线程导致CPU占用高,一般这是因为服务器物理内存或者JVM堆内存不足导致,需要进一步排查堆内存占用情况,可以用jmap和jstat命令 简单用法可以看这个贴:http://47.96.11.156:50001/doc/13/ 具体用法百度  - 应用程序的线程导致CPU占用高,可以直接在堆栈信息中搜索com.acrel,可以看到出问题的类,类似下图的堆栈信息 
admin
2024年4月22日 15:29
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码