1.cpu占用过高
正常情况,业务搞活动,请求过多,大批流量过来了,处理的线程数越多。需要提升服务器配置,单核变多核;
非正常情况,cpu占用率长期过高,可能出现死循环了。
top查看cpu占用情况,获取进程占用最多的进程号
top -Hp +进程号,查看线程情况,获取线程占用最多的线程号
printf "%x" +线程号,把线程号转换成16进制
jstack + 线程号 | grep 线程号16进制 -A 10 查看线程栈情况
看哪个方法处于死循环
2.死锁
程序死锁后,死锁的线程处于等待状态,等待状态的线程不占用cpu
jps查看进程
jstack 查看死锁
3.内存泄漏
jmap 下载dump内存快照文件
eclipse mat插件打开dump文件