gpt4 book ai didi

php - 为什么 Symfony 分析器在使用 Memcached 分析器存储时抛出 404?

转载 作者:搜寻专家 更新时间:2023-10-31 21:06:35 24 4
gpt4 key购买 nike

在使用 Symfony2 分析器时,我正在努力找出 404 的原因。我正在使用 Symfony 2.3 LTS。

我在我们的开发环境中启用了探查器,该问题可在多台开发人员机器上重现。我们的分析器配置是:

framework:
profiler:
dsn: "memcached://localhost:11211"
enabled: true
lifetime: 86400 # Keep profiles for a day at most

在某些(但不是所有)页面上,我们看到如下错误:

**The page at https://local.dev says:**

An error occurred while loading the web debug toolbar (404: Not Found).

Do you want to open the profiler?

OK / Cancel

有 5 404 个请求 https://local.dev/_wdt/<token>然后单击“取消”会将我们带到“未找到 token ”页面,地址为 https://local.dev/_profiler/<token>

我已尝试单步执行代码,到目前为止已确定:

但是,进行此调用后,对原始 token 的 telnet 请求返回空。此调用的 key 与原始 token 不同,因此不会被覆盖。

这反过来会触发我在客户端看到的 404 错误。

一些额外的可能有用的信息:

  • 工具栏在某些页面上确实有效。我们管理界面中的页面出现 404 工具栏错误。
  • 我们正在使用 ESI 和 Twig。
  • 我们正在调用 {% render(controller("ABundle:AController:anAction", {some:params})) %}
  • 从我们的一个 Twig 模板中删除一个渲染方法解决了这个问题。
  • 恢复该渲染方法并注释掉另一个渲染方法也可以解决该问题。暗示有太多 child 或太多数据(或类似的东西)。

是什么导致了这个问题?我如何确定修复?

顺便说一句,使用 FileProfiler 可以正常工作。

感谢您的帮助!

最佳答案

经过多次头脑 Storm ,我找到了解决方案。

似乎由于我们在模板中使用了很多渲染器,所以正在收集大量分析器数据。

此探查器数据被推送到 memcached 中。而且,因为其中有很多,其他数据正在被逐出。我通过运行发现了这一点:

echo stats | nc 127.0.0.1 11211 | grep evic

每次加载页面时,我都会看到 evicted_unfectedevictions 攀升。

解决方案是将 memcached 的内存池大小从标准的 64MB 增加到 256MB(或任何其他大小)。

这是通过在运行时传递 -m 选项来完成的。

关于php - 为什么 Symfony 分析器在使用 Memcached 分析器存储时抛出 404?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31342255/

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