WordPress达到内存限制,但不是来自服务器

时间:2021-01-14 作者:pstidsen

我已经为此挣扎了好几个小时好几天了。我现在需要好的解决方法。

当我在WordPress中执行某个操作时,有时会出现致命的内存错误。错误发生在我点击;更新(&Q);在标签/术语上。该错误似乎与WordPress核心文件有关。

脚本似乎达到了大约700 MB的内存限制:https://www.screencast.com/t/i6USBKHuWcxS

但是,服务器上的限制要高得多—5096 MB:https://www.screencast.com/t/CyRJs8dohYYh

我们的服务器管理员已经确认,我们没有达到任何限制。

我所尝试的:

停用所有插件并切换到默认主题。这就解决了问题However: 一个插件无法识别问题。插件的不同组合会导致错误是否可以;“假冒”;某些脚本、插件等的内存限制。?我们确实在服务器上使用LiteSpeed缓存——我不知道这是否相关。

欢迎您提出任何意见和建议。

1 个回复
SO网友:Tom J Nowell

服务器必须同时为许多请求提供服务,为了防止PHP请求失控,它给了它们两个限制。时间和记忆。如果生成页面请求需要2个小时,则表明出现了问题。

如果您的请求需要无休止的内存,则说明出现了其他问题。这些问题可能导致资源耗尽攻击,并损害站点的扩展能力。这些限制提供了一个安全网,以防止灾难、避免无限循环、捕捉漏洞等。

WordPress站点的良好内存占用通常在100mb以下,最好在50mb以下。一个普通的WP安装,没有插件,默认的主题大约4mb,许多构建良好的站点大约20mb。

任何超过100的数据都是可疑的,而700mb是非常高的。你的网站要么做得太多,要么做了不需要做的事情,要么有bug。这可能是您的主题、插件或多种因素的组合。它不一定是一件单一的事情,它可以是许多事情堆积起来。

较新版本的PHP将有助于缓解此问题,但会提高php.ini 对于大多数人来说,这只是权宜之计,并不能解决实际问题,而您还没有找到。

You need to grab a copy of your site, and attempt to profile it to get more information


该错误似乎与WordPress核心文件有关。

不,这正是内存不足时发生的事情。

A bit like the monty python scene where Mr Creosote has eaten everything in the restaurant and is offered a wafer thin mint, and explodes after eating it. 不是造币厂做的,而是食物的堆积如山。同样,也没有哪一种食物是有责任的,这是总体积的。

脚本似乎达到了大约700 MB的内存限制:

700是very 高的

然而,不可能通过一个插件来确定问题。插件的不同组合会导致错误。

你的东西太多了,扔掉一些东西,或者用更轻更轻的东西来代替它们。查询监视器可以帮助您测量所使用的内存。

切换到PHP 7.1解决了这个问题。然而,这不是一个永久的、好的解决方案。

实际上这是一个伟大的举动,但你做得还不够。PHP 7.1很旧,不受支持,您应该至少使用PHP v7.4或更新版本。

但是,服务器上的限制要高得多-5096 MB

您永远不会希望一个请求实际使用所有这些。

相关推荐

Execute shortcodes in PHP

我在帖子编辑器中添加了一个地理位置快捷码,可以根据用户的位置显示不同的信息,将其放在帖子页面的内容中,效果非常好。如何在主题的PHP文件中执行此短代码[地理位置][地理位置]?我正在使用免费修改Wordpress主题,我想添加一个新的<span>[geolocation][/geolocation]Information text content</span> 但在主题的内部。php文件,我如何才能做到这一点?如果我直接加上<span>[geolocation][/ge