Php CLI脚本忽略memory_limit,崩溃的数量远低于限制

时间:2009-12-30 20:46:10

标签: memory limit php ini-set

由于某种原因,我的一个PHP脚本忽略了php.ini内存限制或ini_set。

当我执行print_r(ini_get_all)时,它显示全局内存限制设置为100M(并且就此而言是本地的),当我的脚本死于致命错误时:内存不足(分配24714304)(试图分配571字节)

有关诊断的任何提示吗?服务器有8GB的内存,之前从未遇到过运行此脚本的问题。

有关调试的任何提示吗?

谢谢!

3 个答案:

答案 0 :(得分:5)

最常见的原因是CLI PHP二进制文件通常使用的文件与您预期的不同。这可能是由user permissions引起的,或者只是安装的PHP版本的默认php.ini文件。但是,听起来你已经对它进行了一些描述,你的内存限制可能在你的脚本中是正确的。

在这种情况下,操作系统强加的进程很可能存在内存限制,在这种情况下,您必须确定拼版的来源。

我建议看一下this thread,因为那张海报经历了与你的情况非常相似的事情。

答案 1 :(得分:5)

我的进程的虚拟内存受到严格限制(数字太低)。

从bash shell我做到了:

ulimit -v(memory_in_bytes,没有括号)

这解决了我的问题。上帝,我喜欢stackoverflow

答案 2 :(得分:0)

短而甜蜜的

ini_set('memory_limit', -1);

如果您想跳过调试