【问题标题】:SilverStripe - /admin is running out of memorySilverStripe - /admin 内存不足
【发布时间】:2016-09-14 10:23:56
【问题描述】:

一两天前,我在尝试访问 /admin 时开始遇到内存问题

起初它是打开和关闭的,现在站点树没有加载,导致管理部分无法使用。有谁知道可能是什么问题?或者以前有过这样的经历?

我尝试清除缓存并设置一个 silverstripe-cache 文件夹,但没有任何作用。

假设它可能是我编写的代码,我将所有页面类型移出目录,运行 dev/build & flush 但错误仍然存​​在。

模块激活
>多值字段
> external_auth

页面类型:15

页面数:40,261

我得到的错误是:

PHP 致命错误:在第 26 行的 /framework/model/connect/PDOQuery.php 中,允许的内存大小为 134217728 字节已用尽(尝试分配 71 字节),引用者:/admin/pages/

谁能建议我应该把重点放在哪里来解决这个问题?我也有点难过问题是什么/在哪里


更新/回答/我的解决方案

我设法解决了这个问题(暂时)...
我所做的是清空 SiteTree_Live 表并在我知道我的代码运行良好且毫无疑问存在任何内存问题时恢复到提交,然后我再次发布所有文章并增加提交直到我回到最最近的。

它现在可以正常工作了,我可以很好地回到管理面板,所以看起来确实与数据量有关。增加内存限制就可以了。

【问题讨论】:

  • 是的,我看到了,我设置了 128mb
  • @Barry 是的,它是 3.4 - 我拥有的模块是多值字段,external_auth。页面具有设置和显示特定位置内容、向内容作者发送电子邮件的功能,对于页面类型我有 15
  • 对不起,我以为您指的是页面类型,至于实际页面大约有 40k。我认为这可能是我的代码,我尝试在此错误出现之前的一周内注释掉我所做的所有事情,刷新缓存并且问题仍然存在
  • @Freemium 不得不问一个显而易见的问题:您是否尝试将内存限制增加到超过该上限,还是再次耗尽所有内存?如果您在本地获取项目文件的副本而数据库中没有任何页面,管理员是否工作?如果后者有效,我想您可以尝试以多步的方式增加 memory_limit 。专业提示:git 和 bisect 将有助于排除编码问题。如果您只是在评论一些东西,那么您似乎应该深入了解版本控制您的项目

标签: silverstripe


【解决方案1】:

这是 SS 中的已知限制。尝试减少一个父页面的数量或使用模块 silverstripe-news。

问题与Hierarchy::$node_threshold_totalHierarchy::$node_threshold_leaf 有关。其中一个限制应用不正确,超过阈值的页面将加载到内存中。

【讨论】:

  • 这可能是它,但我还不能确认。我检查了有多少页超过了阈值(50),发现有 13 页,其中一页有 986 页!我设法在 CMS 中很好地打开了它,并且站点树也加载了。 “其中一个限制应用不正确”是什么意思?可以手动增加限制吗?
猜你喜欢
  • 2014-10-15
  • 1970-01-01
  • 2011-05-21
  • 2021-12-20
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 2020-03-12
相关资源
最近更新 更多