一、服务器CPU占用过高
1.1原因:出现了递归调用,代码出现死循环(如while里面不断创建线程),GC频繁
1.2查看:top命令查看系统情况
1.3定位:top找到占用cpu的进程pid,然后按shift+h切换成线程tID,执行jstack -I pid > test.txt得到线程信息,把线程号找到16进制,在test.txt中找到16进制对应的线程信息。
二、Mysql cpu占用率过高
2.1原因:QPS高
2.2表现:QPS高,没有出现慢查询,QPS和CPU使用率曲线变化吻合。
2.3解决:增加CPU实例,增加只读实例,分库分表
2.2原因:查询成本高
2.3表现:QPS不高,出现慢查询,QPS和CPU使用率曲线变化不吻合
2.4解决:定位慢查询show processlist查看当前执行的查询;然后查看explain是否使用索引