1

我有一个 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 文件并确保我的用户名、密码和主机正确,请不要回复。这不是问题。该网站在正常流量下运行良好。

4

1 回答 1

0

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

WordPress 确实可以通过许多帖子/页面修订使数据库陷入困境。使用插件删除它们http://wordpress.org/extend/plugins/revision-control/ 我已经将数据库减少到其原始大小的 10%,从而大大提高了性能。

于 2013-04-25T18:57:57.727 回答