当一台部署了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
网友评论