Php wordpress上的连接太多问题,使用数据库缓存,非共享主机

Php wordpress上的连接太多问题,使用数据库缓存,非共享主机,php,mysql,wordpress,Php,Mysql,Wordpress,我在这里束手无策。 一位客户有一个wordpress网站,预计下周六会有大量流量。有人问我该站点是否能够处理负载,使用JMeter我的回答是“否”,因为它一直存在数据库连接问题 现在,关于我发现的配置和问题 这是一个云主机,据我所知,它不是共享的,使用的是标准的apache/linux配置。Mysql的“max_connections”变量是1000,我的测试甚至在每秒50个连接的情况下也会失败。ShowProcessList没有显示任何异常,最坏的情况是两个线程睡眠3秒钟,但没有挂起的查询或类

我在这里束手无策。 一位客户有一个wordpress网站,预计下周六会有大量流量。有人问我该站点是否能够处理负载,使用JMeter我的回答是“否”,因为它一直存在数据库连接问题

现在,关于我发现的配置和问题

这是一个云主机,据我所知,它不是共享的,使用的是标准的apache/linux配置。Mysql的“max_connections”变量是1000,我的测试甚至在每秒50个连接的情况下也会失败。ShowProcessList没有显示任何异常,最坏的情况是两个线程睡眠3秒钟,但没有挂起的查询或类似的内容

Wordpress本身是一个相当标准的配置。确实使用了几个插件,其中最明显影响数据库性能的插件是woocommerce。其他一切都是一个画廊插件,然后一些小东西,如联系方式。总共10个插件

对于缓存,我使用W3Total缓存的页面、对象和数据库缓存。我甚至对W3缓存的默认配置以外的查询强制进行缓存,比如COUNT()查询,它似乎在显示缓存的主页上的所有查询时起作用

但是,JMETER在50/sec连接时显示高达50%的故障。它并不完全一致,有时会上下波动,但仍然远远高于可以接受的水平,据我所知,远远低于服务器的1000个连接限制。仍然得到太多的连接问题。如果我关闭缓存,它会变为90%,所以这显然是有帮助的

在这一点上,我不知道如何进一步缓解这个问题。即使我禁用了每个插件,这个数字仍然保持在1%以上,因为主页几乎什么都不显示,但显然我不能禁用所有插件,因为这会破坏网站。我希望能够禁用一对,或者暂时强制它们做出静态响应,但是一定有一些潜在的问题导致了这一点,因为我不确定这对客户端来说是否可以接受


如何进一步调试此问题?例如,每个插件是否可能创建自己的新连接?是否有一种方法可以调试,例如,在脚本执行结束时打开了多少个连接

研究如何使用查询监视器,以查看到底是什么代码在运行什么类型的查询它们需要多长时间等


这是对性能优化模板和各种调用进行基准测试的一个很好的工具。

我的猜测是连接没有关闭,所以请保持打开状态。也许php.ini中可以更改某些内容。你有权使用它吗?在我的脑海中,您可能会看到最大连接数,以及最大内存和最大脚本运行时间(或其他名称…)