分析CPU问题
1.现象
-
系统访问卡顿,QPS、TPS降低,响应时间延长,网络吞吐量降低;
-
应用服务器内存和IO正常,CPU利用率增高
2.原因
-
线程太多,上下文切换太频繁;
-
GC回收使用了过高的CPU资源;
-
某段代码陷入了死循环;
-
锁争用激烈
3.解决方法(主要解决CPU的问题)
-
考虑使用更高级的CPU代替当前的CPU
-
对于多CPU,考虑CPU之间的负载分配
-
考虑在其他体系上设计系统,例如增加前置机,设置并行服务器
-
定位耗时最高的线程,将需要的线程ID替换成16进制格式,并打印线程的堆栈信息,找到出现问题的代码