【问题标题】:Locating a cross-server memory leak定位跨服务器内存泄漏
【发布时间】:2015-02-12 09:25:54
【问题描述】:

我有一个基于 elgg 开源平台 (PHP) 的社交网络,但我一直遇到一些与内存相关的问题。

Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 23456789 bytes) in somefile.php

我的 Web 应用程序架构包含 2 个 apache Web 服务器 (linux),它们之间有一个负载平衡器。每天大约 3-4 次 Web 应用程序崩溃,它需要大约 2-3 分钟才能自行恢复。知道这只是一个补丁(也是一个丑陋的补丁),我升级了两台服务器上的内存,并将 php.ini 更新为 memory_limit = 512M。 我知道我仍然需要定位内存泄漏,但我只是想看看它有多糟糕,看看它是否真的有帮助。

我真正的问题是:因为我有两台 Web 服务器运行代码,为什么整个应用程序崩溃,而不是每次只有一台服务器崩溃?

提前致谢, 伊泰

【问题讨论】:

  • 可能同时发生相同的情况 - 可能有一个 cron 或某事在很多记录上做一些低效的事情。 somefile.php 是做什么的?
  • 服务器上没有 cron 作业,这是一个不同的 php 文件,每次都会抛出错误...
  • 您的有效内存限制为 12MB。尝试更新可能覆盖 php.ini 的 .htaccess 文件中的设置
  • 感谢 Pawel,您对我的 .htaccess 覆盖 php.ini 是正确的
  • @ItayWeiss - 您应该将此添加为答案,因为此问题仍在未回答列表中:)

标签: php apache memory-leaks elgg


【解决方案1】:

在这种情况下,问题在于 .htaccess 文件中的设置覆盖了 php.ini。

感谢Pawel Sroka's 的评论,我明白了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 2011-02-18
    • 2016-01-09
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多