通过使用htop命令,我可以看到一个mysqld进程占用了超过500%的CPU使用率,它的PID是例如20456 htop only show command /usr/bin/mysqld
现在,我想要做的是检查PID正在进行什么查询?我的网站做了很多与数据库相关的事情,我想知道是什么工作导致CPU使用率如此之高。有谁能给我带路吗?
我尝试在mysql中显示完整的进程列表,但它没有显示该列表中的PID,所以我不知道该关注什么。
发布于 2019-02-14 04:52:09
在我研究threads view manual时,MySQL 5.7 / 8.0 seams对此提供了本机支持
THREAD_OS_ID
由底层操作系统定义的线程或任务标识符(如果有):
THREAD_OS_ID包含操作系统线程ID。
对于Windows,THREAD_OS_ID对应于进程资源管理器(https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)中可见的线程ID。
对于Linux,THREAD_OS_ID对应于gettid()函数的值。例如,使用perf或ps -L命令或在proc文件系统(/proc/pid/task/tid)中公开此值。有关详细信息,请参见perf-stat(1)、ps(1)和proc(5)手册页
此外,该视图还包含一个PROCESSLIST_ID列,因此您可以将它与information_schema.processlist连接起来,以了解哪个查询正在使用哪个操作系统的PID
发布于 2019-02-14 06:02:07
在运行查询时尝试从root登录-
SELECT * FROM information_schema.innodb_trx;
?要查看正在运行的查询的内容?
https://stackoverflow.com/questions/54678292
复制相似问题