场景:
线上发布后,对并发查询比较高得接口没有做缓存优化,导致大量查询直接落在DB上了,出现慢SQL等性能问题,随着请求不断增加,cpu飞速飙升。
应激处理方案:
1.切换机器流量到没有问题的机器上
2.对本机系统线程做控制,减少或禁止系统创建新的业务线程。带系统cpu降低后,再慢慢放开线程数到正常值。
排查实例
1.使用top命令查看占cpu情况
2.jstack pid命令查看进程
导出使用 jstack pid > pid.txt
3.通过top -H -p pid名称查找出
printf '%x' tid 通过此名称找出对应的16进制现场id
�
1.通过top名称查处问题线程
2.保存当前问题线程信息到文件
3.将问题线程id转16进制
4.在问题线程文件中搜索16进制的线程信息