2021-03-29 定位占用cpu高的sql

当一台部署了mysql的服务器负载过高的时候,往往是由于某条sql占用cpu过高导致的,如何通过占用服务器CPU资源过高的线程找到对应sql是我们今天的主题

查看服务器占用cpu高的线程

#以CPU使用率由小到大排列服务器线程
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
线程号 占用率

查看mysql的conn_id与服务器线程thread_os_id的对应关系(可选)

select thd_id, conn_id, thread_os_id, name from sys.processlist a ,performance_schema.threads b where a.thd_id =b.thread_id and conn_id >0;
线程id ,one_connection客户端连接

查看某线程下的调用sql

strace -T -tt -e trace=recvfrom,write,access,read,open,pwrite64,pread64 -p 2642 
线程号

找到sql

你可能感兴趣的:(2021-03-29 定位占用cpu高的sql)