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

jam*_*mes 7 php memory ini-set limit

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

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

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

有关调试的提示吗?

谢谢!

zom*_*bat 5

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

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

我建议看看这个帖子,因为那张海报经历了与你的情况非常相似的事情.


jam*_*mes 5

我的进程的虚拟内存受到严格限制(数量太少).

从bash shell我这样做:

ulimit -v(memory_in_bytes,没有括号)

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