2013-04-25 63 views
1

我有一个WordPress的3.5.1站点获得一点点的流量(80个并发访问者,每秒约5次点击/浏览量)。该网站运行良好,直到它达到约85人。通常有4个管理员同时登录。该网站有8个自定义帖子类型 - 帖子有3500个帖子,新​​闻发布(自定义帖子类型)有13000个帖子。所有这些都是在网站上分页的,所以在任何一个页面上都不会有超过20个帖子。WordPress的网站 - 错误连接到数据库 - 只有在高流量

我使用的唯一插件是wp-pagenavi和w3totalcache。

我将WP_DEBUG_LOG设置为true并记录了错误。我得到的主要错误(除了与此问题无关的各种通知和警告),mysql已达到max_user_connections限制。我试图把它设置得更高,但是CPU无法处理负载(4个四核CPU,每个2.17GHz,4GB的RAM)。

什么可能导致这么多的连接?

我查看了错误发生时运行的mysql进程,并且有很多连接表示“SLEEPING”或“SLEEP”(可能是15-20)。我还注意到通过进程日志,httpd在交通高峰期间经常重启。

有关如何解决问题的任何想法?

注意:如果您的答案是检查我的wp-config.php文件并确保我的用户名,密码和主机是正确的,请不要回复。这不是问题。该网站在正常流量下正常工作。

+0

检查第一个答案这个问题http://stackoverflow.com/questions/9083060/mysql-kill-sleep-connections。 – 2013-04-25 18:25:32

+0

这听起来像一个选项(即减少wait_timout变量),但是这会带来什么影响?这会开始杀死实际使用的连接吗?我想确保管理员在尝试编辑某些内容时不会被踢出。另外,将这个变量设置为什么是合理的数字? – codescribblr 2013-04-25 19:07:30

+0

这不会影响登录的用户会话。您的问题可以在服务器默认情况下更好地解决,因为它与更多的服务器设置相关检查这个答案关于同一主题,以获得更好的主意:http://serverfault.com/a/71379。 – 2013-04-25 21:05:47

回答

0

数据库服务器由于高负载而退出。错误日志里有什么?数据库的大小是多少?您是否使用mysqltuner.pl检查my.cnf中MySQL服务器的查询加载和缓存设置? https://github.com/rackerhacker/MySQLTuner-perl

WordPress可以真正陷入数据库与许多职位/页面修订。用插件删除它们http://wordpress.org/extend/plugins/revision-control/我已经将数据库丢弃到其原始大小的10%,从而导致性能大幅提升。

+0

我安装了revision-control并将其限制为2个修订版本。这有点减少了db的大小。总大小是〜400MB。我从来没有听说过mysqltuner。我会仔细研究。我不觉得应该只有80个访问者和几个管理员登录的服务器上应该有一个高负载。 – codescribblr 2013-04-25 19:03:09

+0

会有许多帖子和CPT项目的负载。 mysqltuner易于使用,并会给你建议调整my.cnf以便更好地缓存查询。 – markratledge 2013-04-26 00:34:20