通过使用htop命令,我可以看到一个mysqld进程占用了500%以上的CPU使用率,其PID例如是20456 htop仅在其旁边显示命令/ usr / bin / mysqld
现在,我想做的是检查PID在查询什么?我的网站做了很多与数据库有关的事情,我想知道是什么工作导致了如此高的CPU使用率。有人可以给我指路吗?
我尝试在mysql中显示完整的进程列表,但没有在列表中显示PID,所以我不知道要关注什么。
答案 0 :(得分:1)
THREAD_OS_ID
由基础操作定义的线程或任务标识符 系统,如果有的话:
THREAD_OS_ID包含操作系统 线程ID。
对于Windows,THREAD_OS_ID对应于在 流程浏览器 (https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)。
对于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联接起来,以了解哪个查询正在使用哪个OS PID。
答案 1 :(得分:0)
查询运行时,请尝试从root登录-
SELECT * FROM information_schema.innodb_trx;
?
查看正在运行的查询的内容?