【发布时间】:2009-10-21 22:34:12
【问题描述】:
我有一个在 apache/mod_php 中运行的请求处理程序,它偶尔会超出允许的最大内存使用量(即 php.ini 中的 memory_limit 定义)。
处理这个请求调用 proc_open() 来运行外部命令。这些命令的内存使用量是否“针对”请求内存使用量计算?
除此之外,分析和修复在 mod_php 下运行的脚本的内存使用情况的首选方法是什么?我发现的所有关于 php 内存使用的信息似乎都是:
- “编辑 php.ini 并提高内存限制!”
- “编辑您的 apache 配置并将每个孩子的最大请求数设置为较小的数字!”
显然,其中任何一个都会对性能和稳定性产生负面影响。我怎样才能真正分析和解决问题,而不是创可贴?
Apache 将错误记录为:
PHP 致命错误:允许的内存大小 X 字节用尽(试图 在第 Z 行的 foo.php 中分配 Y 个字节)
【问题讨论】: