网站建设案例展示怎样在百度上宣传自己的产品
jvm cpu异常分析(jstack)
*********************
线程异常升高原因
线程执行过程中出现死循环、死锁
线程请求外部资源时出现长时间等待
内存空间不足,频繁full gc,gc线程大量占用cpu
线程异常升高时,可使用jstack找到线程位置,进行相应处理
*********************
示例
Test.java:while循环运行1000s
public class Test {public static void main(String[] args){long startTime=System.currentTimeMillis();while (System.currentTimeMillis()-startTime<1000000){}}
}
后台启动程序:java Test.java &
*********************
相关操作
top:查看进程占用cpu情况
进程7579 cpu使用率接近100%
ps -ef | grep 7579:查看进程7579信息
top -p 7579 -H:查看进程内部线程运行状况
线程7580 cpu使用率接近100%
printf "%x\n" 7580:7580转换为16进制
7580 转换为16进制数 1d9c
jstack 7579 | grep -10 "1d9c":查看线程位置
线程1d9c 位于Test.main 方法中(该方法中存在while循环,大量占用cpu)