生产服务器上的PHP内存峰值

时间:2011-10-04 14:43:28

标签: php ubuntu apache2

我有2台服务器:我的本地服务器和远程生产服务器。他们有基本相同的配置:Ubuntu 10.10,Apache 2,PHP 5.3,PHP-APC,MYsql等。我也在两台服务器上都有一个webapp的副本,这就是PHP的问题:

在我的本地服务器上,webapp仅使用~4 MB的内存,但在我的生产服务器上,内存使用率高达50 MB的内存,没有充分的理由。我尝试运行memory_get_peak_usage()函数来获取webapp执行的不同阶段的内存使用情况,并且我发现生产服务器上的内存峰值从0.7到49 MB这样的函数调用为class_exists()。

可能是什么问题?

坦克。

2 个答案:

答案 0 :(得分:0)

讨厌听到声音,但是你确认他们有完全相同的Apache / PHP配置,因为它们很容易成为这些差异的来源。 他们也遇到了同样的负载,因为在负载下的服务器上运行的代码与运行有大量无争议资源的代码的行为可能非常不同。

在可能影响其他内容的其他正在运行的应用程序方面是否存在其他差异?

可能值得在两台服务器上分析代码以查看是否存在任何请求差异,XHprof [1]是一个很好的工具,它可以安全地在生产中运行(只要您阅读说明)

[1] http://phpadvent.org/2010/profiling-with-xhgui-by-paul-reinheimer

答案 1 :(得分:0)

好的,我发现问题出在哪里。有一个类正在创建包含用户浏览器信息的缓存文件(以便稍后识别它们)。显然,该文件和/或解析器存在问题,因此使用了太多内存。从那以后我已经清除了缓存文件,如果情况重复,我会完全抛弃这个类。

感谢所有回答/评论问题的人。