gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:13:49 25 4
gpt4 key购买 nike

我已经无计可施了。客户有一个 WordPress 网站,预计下周六会有大量流量。我被要求查明该站点是否可以处理该负载,使用 JMeter 我的答案是“不能”,因为它一直存在数据库连接问题。

现在,介绍我发现的配置和问题。

这是一个云托管,据我所知,它不是共享的,使用标准的 apache/Linux 配置。 Mysql 的“max_connections”变量是 1000,即使在每秒 50 个连接的情况下,我的测试也会失败。 SHOW PROCESSLIST 显示没有任何异常情况,最坏的情况是几个线程休眠了 3 秒,但没有挂起的查询或任何类似的内容。

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

对于缓存,我使用 W3 Total Cache 的页面、对象和数据库缓存。我什至强制缓存不在 W3 缓存默认配置上的查询,例如 COUNT() 查询,并且它似乎正在工作,因为它显示了缓存的主页上的所有查询。

但是,JMETER 在 50/秒的连接速度下显示高达 50% 的失败。它并不完全一致,有时会上下波动,但仍然远远高于可接受的水平,并且据我了解,低于服务器的 1000 个连接限制。仍然出现连接过多的问题。如果我关闭缓存,它的利用率会达到 90%,所以这显然很有帮助。

目前,我不确定如何进一步缓解这个问题。即使我禁用每个插件,这个数字也会保持在 1% 以上,因为主页几乎不显示任何内容,但显然我不能禁用所有插件,因为这会严重破坏网站。我希望可以禁用几个或暂时强制它们做出静态响应,但必须存在一些潜在问题导致此问题,因为我不确定这是否能为客户所接受。

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

最佳答案

研究使用查询监视器来准确查看哪些代码正在运行什么类型的查询,它们需要多长时间等。

https://wordpress.org/plugins/query-monitor/

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

关于php - WordPress 上的连接问题太多,使用数据库缓存,非共享主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50456074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com