我有一个wordpress 3.5.1网站,它获得了一点流量(80个并发访问者,每秒约5次点击/浏览量)。该网站运行良好,直到它吸引约85名访客。通常有4名管理员同时登录。该网站有8种自定义帖子类型 - 帖子有3500个帖子,而新闻稿(自定义帖子类型)有13000个帖子。所有这些都在网站上进行了分页,因此在任何一个页面上都不会显示超过20个帖子。
我使用的唯一插件是wp-pagenavi和w3totalcache。
我将WP_DEBUG_LOG设置为true并记录错误。我得到的主要错误(除了与此问题无关的各种通知和警告)是mysql已达到max_user_connections限制。
我当前的max_user_connections设置为75.我尝试将其设置得更高,但是cpu无法处理负载(每个2.17GHz的4个四核CPU和4GB的RAM)。
可能导致这么多连接的原因是什么?
我已经看到错误发生时运行的mysql进程,并且有许多连接说“SLEEPING”或“SLEEP”(可能是15-20)。我还通过进程日志注意到httpd在高峰流量时间内经常重启。
有关如何解决问题的任何想法?
注意:如果你的答案是检查我的wp-config.php文件并确保我的用户名,密码和主机是正确的,请不要回复。这不是问题。该网站在正常流量下工作正常。
答案 0 :(得分:0)
数据库服务器因高负载而退出。错误日志中有什么?数据库的大小是多少?您是否使用mysqltuner.pl检查my.cnf中MySQL服务器的查询加载和缓存设置? https://github.com/rackerhacker/MySQLTuner-perl
WordPress可以通过许多帖子/页面修改来阻止数据库。使用插件http://wordpress.org/extend/plugins/revision-control/删除它们我将数据库丢弃到其原始大小的10%,从而大大提高了性能。