【64期】MySQL 服务占用cpu 100%,如何排查问题?

2021/12/4 19:18:22

本文主要是介绍【64期】MySQL 服务占用cpu 100%,如何排查问题?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!

问题复现

线上系统突然运行缓慢,CPU飙升,甚至到100%,以及Full GC次数过多,接着就是各种报警:例如接口超时报警等。此时急需快速线上排查问题。

问题排查

不管什么问题,既然是CPU飙升,肯定是查一下耗CPU的线程,然后看看GC。

核心排查步骤

1、执行top命令:查看所有进程占系统CPU的排序。极大可能排第一个的就是咱们的java进程(COMMAND列)。PID那一列就是进程号。

2、执行top -Hp 进程号命令:查看java进程下的所有线程占CPU的情况。

3、执行printf "%x\n" 10命令 :后续查看线程堆栈信息展示的都是十六进制,为了找到咱们的线程堆栈信息,咱们需要把线程号转成16进制。例如:printf "%x\n" 10打印:a,那么在jstack中线程号就是0xa。

 



这篇关于【64期】MySQL 服务占用cpu 100%,如何排查问题?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程