使用top观察系统资源,OS负载不高,但是可以看到mysqld进程(PID:21828)的CPU使用率达到了232.6%,其内存使用率也达到了17.7%。
3. 通过pidstata工具观察使用率高的进程
可以看到存在两个进程(mysqld、sysbench)的CPU使用率高:
- sysbench(PID:7395) 目前使用的压测工具,可以忽略。
- mysqld(PID:21828) MySQL数据库的进程
4. 通过pidstat工具观察mysqld线程使用CPU的情况
从以上找出CPU使用率高的线程ID分别为:21845、61497、61498、61507、7413、7414、7415、7416、7417、7418、7419、7420
5. 查看MySQL端运行的线程
[mysql]# mysql -e "select * from performance_schema.threads\G" >> threads.log
[mysql]# mysql -e "select * from information_schema.processlist where command!='sleep';" >> processlist.log
6. 根据线程CPU使用率高的TID到threads.log中找出对应的PROCESSLIST_ID
TID=21845
根据PROCESSLIST_ID到threads.log文件中可找到执行的对应SQL,这是我sysbench压测产生的SQL;
总之找到执行慢速的sql