1 个 MYSQLD 进程的 CPU 使用率过高,但在执行 SHOW FULL PROCESSLIST 时没有出现异常查询

1 个 MYSQLD 进程的 CPU 使用率过高,但在执行 SHOW FULL PROCESSLIST 时没有出现异常查询

我遇到一个问题,其中 2 个进程占用了 99%的 CPU,但是根据 top,mysqld 进程占用了 600%的 CPU,而一组 php-fpm 进程占用的 CPU 不超过 25%(2 个进程处于活动状态,603 个进程处于休眠状态,其中一个是 mysqld,另一个似乎是 php-fpm,因此它不是来自太多客户端),所以我想知道是什么原因导致了高 CPU 使用率,因为执行 SHOW FULL PROCESSLIST 只给了我一些 SELECT 命令,例如 2 或 3,并没有什么异常,我如何找出问题所在?有人告诉我这是 rsync 进程,但是 rsync 进程应该只占用大量 IO 并且不占用 CPU,问题是当只有 2 个进程时 CPU 就达到了 99%,而执行 SHOW FULL PROCESSLIST 并不能揭示 CPU 使用率如此之高的原因,那么您如何调试它呢?是否有一个命令可以让您检查过去的 MYSQL 查询,因为有人告诉我如果有 MYSQL 转储,当我运行 SHOW FULL PROCESSLIST 时它不一定会出现,所以我想知道是否有办法检查最近完成的所有查询。

相关内容