jvm 系统调优,确定高CPU程序代码
来源:互联网 发布:火狐javascript设置 编辑:程序博客网 时间:2024/06/04 18:34
一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。
(友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen)
以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。
根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。
通过ps aux | grep PID命令,可以进一步确定是tomcat进程出现了问题。但是,怎么定位到具体线程或者代码呢?
首先显示线程列表:
ps -mp pid -o THREAD,tid,time
找到了耗时最高的线程28802,占用CPU时间快两个小时了!
其次将需要的线程ID转换为16进制格式:
printf "%x\n" tid
最后打印线程的堆栈信息:
jstack pid |grep tid -A 30
1,使用jps查找出java进程的pid,如3707
2,使用top -p tid -H观察该进程中所有线程的CPU占用。
3,找出CPU消耗较多的线程id,如15844,将15844转换为16进制0x3de4,注意是小写哦 printf '%x\n' 15844
4,使用jstack 14292|grep -A 10 0x3de4来查询出具体的线程状态。
阅读全文
0 0
- jvm 系统调优,确定高CPU程序代码
- JVM CPU 占用率高分析
- JVM高CPU定位脚本
- JVM CPU高负载的排查办法
- 高压力, 多CPU, 高内存环境下JVM设置
- Java程序代码调优
- 定位JVM中占CPU较高的堆栈
- 分析定位占用CPU资源高的JVM线程
- 【分析linux系统进程高cpu问题】
- JVM调优定位最耗cpu的线程
- 【JVM调优系列】----CPU过高的分析与解决方案
- 确定GPU/CPU bound
- JVM调试和优化(一)服务内存占用高然后CPU高最后宕机
- 图书管理系统程序代码
- OneNote 程序代码高亮插件
- JVM 调优系列 & 高并发Java系列
- 使用/proc文件系统和内核打交道(2)-确定系统的CPU情况
- 解决系统中断占用CPU高的问题
- Dubbo架构设计详解
- jQuery特殊属性之val方法
- usaco Friday the Thirteenth
- Plugin with id 'com.android.application' not found. 解决
- 面试系列-冒泡排序
- jvm 系统调优,确定高CPU程序代码
- Android4.4修改状态栏颜色
- java读取excel指定的位置
- vsftpd不能显示文件目录的解决方法
- Jenkins远程部署 gitLab配置
- springboot
- BaseActivity封装
- SSH综合项目实战(快递) -- day11 shiro权限控制、后台用户登录
- TRS Database admin数据字段类型总结