什么是造成如此高负载的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 

这是否看行不行?当然,一旦我补充说,该网站似乎加载好一点,日志文件还没有写入任何东西...

+0

当我“杀死”MySQL进程时,服务器负载从99.95%下降到5% - 30%,并且从那里变化。它最终再次爬升到90年代。这些页面具有缓存,因此当页面加载时,它们会缓存。如果加载页面时进程被终止,页面将被缓存,并带有mysql警告。这非常烦人。我会喜欢一些帮助:-D – NotJay 2012-04-25 20:41:05

考虑启用,然后检查slow query log,以帮助您找到有问题的查询。

另外你说你“检查每个MySQL查询” - 怎么样?你们是否为他们运行EXPLAIN计划?有时,查询可能会以您不期望的方式行事。

+0

我测试了查询并添加了限制等。我将不得不阅读有关使用慢查询日志。我会尽快回复您。谢谢 – NotJay 2012-04-25 16:42:35

+0

我无法找到与主机公司电话上的MySQL数据库....的配置文件。任何其他想法? – NotJay 2012-04-25 18:02:55

+0

你在使用什么数据库引擎? MyISAM或InnoDB? – Amber 2012-04-25 18:05:29