在线CPU飙升问题搜索总结查看CPU占用最大进程的相关命令:top-c查看进程下线程的CPU:top-Hp{进程号(PID)}获取线程号:printf"%x\n"{线程的PID}如果输出db1,则线程号为0xdb1获取线程状态和信息:jstack{进程号}|grep{线程号(例如0xdb1)}查看线程异常信息:jstack-l{线程PID},也可以保存到文件中查看:jstack-l{线程PID}>{文件名}.stack获取GC进程时长状态:jstat-gcutil{进程号PID}{统计时间间隔(毫秒)}{统计}jmap-heap{进程PID}检查进程堆是否溢出导出进程的dump文件jmap-dump:format=b,file={文件名}.dmp{processPID}体积和heap一样,速度慢jmap-dump:live,format=b,file={filename}.hprof{processPID},heap中存活的dump文件,体积比heap小,可以用hprof做MAT分析(推荐)Linux查看Java进程启动参数(主要用来查看heap空间分配和GC方案的采用情况)pseww{processPID}jcmd{processPID}VM.flagsjinfo-flags{processPID}jmap-heap{processPID}原因是内存消耗过大,导致大量耗CPU的操作FullGC代码过多,导致CPU占用过高,系统运行缓慢。由于锁使用不当,导致死锁。随机出现大量线程访问接口,导致速度慢。某个线程由于某种原因一直在等待。查看监控平台http请求和feign请求是否异常查看全接口平台,查看时间较长的请求接口查看数据库访问,查找查询数据量大的SQL或慢SQL查询JVM监控,检查堆内存异常或GC异常,检查线程是否异常
