导出jstack和内存信息,重启系统,尽快保证可用性。
主要原因(可导致不可用):
(1)读数据量较大,内存耗尽,Full GC多,慢; (2)耗CPU操作,CPU过高,慢;
原因(只慢,还可用):
(3)阻塞,耗时,出现随机;(4)线程WAITING,整体不可用,但无法复现;(5)多个线程死锁
这种要查看系统日志,查CPU和系统内存,看不出具体问题,阻塞性操作,CPU和系统内存使用都不高。
一. Full GC次数过多
两个特征:CPU超过100%,jstack命令看,主要是垃圾回收线程
jstat命令看监控GC情况,Full GC不断增加。
操作概要:看CPU,看进程(线程),看内存日志(哪些对象多),内存占用不高,Full GC多,System.gc()禁用
1、输入 “top” 看CPU高示例:
2、来查看哪些线程CPU高top -Hp 9:
进程9中各个线程CPU占用情况,jstack命令看10线程为什么耗费CPU最高。jsatck中线程id都转换成十六进制。查看转换结果:root@a39de7e7934b:/# printf "%x\n" 10a (结果说明在jstack中