什么是造成如此高负载的CPU(来自MySQL)?
问题描述:
我的网站刚刚遇到了一些来自MYSQL的CPU使用率过高的问题。当我检查Parallels Power Panel时,它说:“/usr/sbin/mysqld --basedir =/--datadir =/var/lib/mysql --user = mysql --pid-file =/var/lib/mysql/exa.example.com.pid --skip-external-locking“正在使用高%的CPU,并且该站点变得非常慢。什么是造成如此高负载的CPU(来自MySQL)?
我已经检查了整个网站上的每个MySQL查询,并且没有什么会导致像这样的长期问题。当我禁用站点上的路由文件时,负载降低(几乎为0%)。一旦它重新开启,高达100%。我今天上班时发现服务器因此而关闭。
db有不超过200,000个总记录分成10个表。我开始认为,这个过程可能没有完成(挂起)或其他错误。您可以在网站停止前加载一两页。
我应该考虑什么样的想法?我在配置php和mysql方面有点新手,所以我还没有尝试过太多。
UPDATE:
我已经添加到了MySQL的配置文件:
log-slow-queries = log-slow-queries.log
long_query_time = 5
log-queries-not-using-indexes
这是否看行不行?当然,一旦我补充说,该网站似乎加载好一点,日志文件还没有写入任何东西...
答
考虑启用,然后检查slow query log,以帮助您找到有问题的查询。
另外你说你“检查每个MySQL查询” - 怎么样?你们是否为他们运行EXPLAIN
计划?有时,查询可能会以您不期望的方式行事。
当我“杀死”MySQL进程时,服务器负载从99.95%下降到5% - 30%,并且从那里变化。它最终再次爬升到90年代。这些页面具有缓存,因此当页面加载时,它们会缓存。如果加载页面时进程被终止,页面将被缓存,并带有mysql警告。这非常烦人。我会喜欢一些帮助:-D – NotJay 2012-04-25 20:41:05