暂无图片
MySQL CPU占用率100%
我来答
分享
猫瞳映月
2020-05-16
MySQL CPU占用率100%
暂无图片 10M

image.png

客户反映,mysql(版本5.7.29)数据库非常慢,差cpu显示占用率非常高,请问大家有什么解决思路吗?

操作系统centos 7.6

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
猫瞳映月

楼上得迷路了把???

暂无图片 评论
暂无图片 有用 2
打赏 0
暂无图片
猫瞳映月

image.png

暂无图片 评论
暂无图片 有用 2
打赏 0
黄伟波

1、show processlist;
2、show engine innodb status \G;
3、看看阻塞lock
–查看哪个线程被哪个堵塞,waiting_thread_id代表等待线程,blocking_thread_id代表堵塞线程
SELECT
r.trx_id waiting_trx_id,
r.trx_mysql_thread_id waiting_thread_id,
r.trx_query waiting_query,
b.trx_id blocking_trx_id,
b.trx_mysql_thread_id blocking_thread_id,
b.trx_query blocking_query,
now( ) - r.TRX_STARTED blocking_time
FROM
information_schema.innodb_lock_waits w
INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id
INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;

–查看源头sql
SELECT
a.sql_text,
c.id,
d.trx_started,
b.processlist_user,
b.processlist_host
FROM
PERFORMANCE_SCHEMA.events_statements_current a
JOIN PERFORMANCE_SCHEMA.threads b ON a.thread_id = b.thread_id
JOIN information_schema.PROCESSLIST c ON b.processlist_id = c.id
JOIN information_schema.innodb_trx d ON c.id = d.trx_mysql_thread_id
WHERE
c.id = 304192
ORDER BY
d.trx_started;

都截图看看??

暂无图片 评论
暂无图片 有用 0
打赏 0
璐璐

专家你好,现在已恢复,请问可以查到之前锁表的SQL吗

暂无图片 评论
暂无图片 有用 0
打赏 0
张sir

一般cpu使用率高是慢sql导致的,可以看看慢查询日志,看看问题时段是否有大量慢sql

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交