mysql - MySQL CPU 使用率高但没有繁重的查询

标签 mysql linux cpu-usage

当我在我的 Linux 上运行“top”命令时,它显示 MySQL 占用了 400%-500% 的 CPU 使用率。但是,当我运行“watch mysqladmin pr”命令来查看 MySQL 正在运行的查询列表时,它只显示 2、3 个查询,而且也只需要 2、3 秒。 “top”命令显示 MySQL 不断波动的 CPU 使用率,如 130%、200%、340%、230%、400%、440%、635%、335% 等。但是“watch mysqladmin pr”命令没有显示正在占用 CPU 使用率的查询。我如何检查为什么 MySQL 使用了这么多 CPU?

谢谢

最佳答案

会不会是一笔巨额交易被回滚了?这将显示 100% cpu 但没有事件查询。重启 mysql 无济于事,因为重启后回滚仍在继续 source : 关于巨额交易的第二部分)

如果您运行 show engine innodb status(假设您正在运行 innodb),在 TRANSACTION 标题下会有信息 - 大致如下:

---交易 7AB09,事件 3601 秒回滚 ROLLING BACK 48157 锁结构,堆大小 5585336,2856641 行锁,撤消日志条目 4921485 MySQL 线程 id 53,OS 线程句柄 0x7f3d503ab700,查询 id 4937822 localhost 127.0.0.1 用户

关于mysql - MySQL CPU 使用率高但没有繁重的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4919208/

相关文章:

c++ - shell 如何管理子进程?

linux - Shell脚本使用sendmail嵌入多个图像

php - 多少 CPU 使用率在 Linux 服务器上被认为是高的

php - 如何合并到数据库

php - MYSQL 4 密码哈希 -> MYSQL 5

MYSQL 多列索引

linux - Docker 使 CMD 保持事件状态以进行检查。 sleep 不适合,ping 默认不可用

由于 CPU 使用事件导致 iOS 崩溃

c++ - 在 Linux C++ 上读取 CPU

mysql - 如何根据mysql中的值获取平均值