据我所知,MySQL 不知为何占用了我大约 80% 的 CPU。目前这台服务器很少使用,更像是我设置的测试站点,一旦我修复了这样的小问题,最终将用于生产。我运行了 3 个 MySQL 实例,但似乎我的第一个实例占用了所有的 CPU。当我关闭第一个实例并让其他两个实例保持打开状态时,一切都运行正常。
有什么建议么?
我尝试过Show Processlist
,除了“Sleep”和查询“Show Processlist”(显然)之外,没有运行任何语句,当时它正在占用所有 CPU。
my.cnf 是基本的。我没有优化或更改任何 MySQL 设置。您认为这会导致如此奇怪的行为吗?
该机器运行Linux Centos 5.7 64位和MySQL 5.0.95。
谢谢
答案1
检查 MySQL 上运行的查询时,请确保使用具有管理员权限的帐户。通常,您只会看到自己的查询。如果其他系统进程在 MySQL 的后台运行,则可能不太明显。
还请考虑atop
查看相关的磁盘活动和innotop
。
答案2
在对 mySQL 进行精细调整后,我能够将 CPU 的使用率从 90% 降低到 35% 左右。由于用于复制到 sybase 服务器的选择语句,它的空闲率很高。
我用来调音的程序
Major Hayden 的 mySQLtuner 1.2.0
和
mySQL 性能调优入门,作者:Matther Montgomery。