从 MySQL 外部,我知道我可以做很多事情来了解进程的 CPU 使用情况,即。 顶部
。
但是,从内部的角度来看,我想知道是否可以从 MySQL 运行查询来了解系统 CPU 是什么或当前线程的 CPU 消耗是多少。
我每晚通过事件调度程序运行大量查询,但我的数据库服务器在几分钟内卡在 100% CPU,从而阻塞或减慢了全局用户的速度。
我尝试研究一种方法来限制线程或用户的 CPU 使用率,但似乎还不可能。
因此,我尝试在我的事件中执行以下操作:
IF (SELECT CPU_USAGE() > 0.8) THEN
REPEAT
SLEEP(0.01);
UNTIL (SELECT CPU_USAGE() < 0.25)
END REPEAT;
END IF;
显然CPU_USAGE()
不存在,但是如果我可以做类似的事情来实现类似的效果,我会洗耳恭听。谢谢。
附注我在 Amazon RDS 上
最佳答案
恐怕 MySQL 本身没有这样的选项 select 选项。
如果您在 mysql 客户端命令行中,您可以使用以下命令从 MySQL 客户端内部调用“top”命令:\!顶部
,但我认为这不是您所需要的。
最好的答案可能是使用 SYS 函数中的 UDF。更多信息here 。我没有使用它的经验,但它似乎最接近您的需要。
关于mysql - 检查 MySQL CPU 使用率(内部),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22612712/