Memory Php CLI脚本忽略内存限制,以比限制低得多的数量崩溃

Memory Php CLI脚本忽略内存限制,以比限制低得多的数量崩溃,memory,limit,php,ini-set,Memory,Limit,Php,Ini Set,出于某种原因,我的一个php脚本忽略了php.ini内存限制或ini_集 当我执行print_r(ini_get_all)时,它会显示设置为100M的全局内存限制(就此而言是本地的),当我的脚本因致命错误而死亡:内存不足(分配24714304)(尝试分配571字节) 关于诊断这个有什么建议吗?服务器有8Gig的内存,在运行此脚本之前从未出现过问题 关于调试这个有什么提示吗 谢谢 最常见的一个原因是,通常CLI PHP二进制文件使用的PHP.ini文件与您预期的不同。这可能是由安装的php版本的不

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

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

关于诊断这个有什么建议吗?服务器有8Gig的内存,在运行此脚本之前从未出现过问题

关于调试这个有什么提示吗


谢谢

最常见的一个原因是,通常CLI PHP二进制文件使用的PHP.ini文件与您预期的不同。这可能是由安装的php版本的不同默认php.ini文件引起的,也可能只是不同的默认php.ini文件引起的。不过,听起来您已经对其进行了一些分析,并且您的脚本内存限制可能是正确的

在这种情况下,操作系统对进程施加的硬内存限制是很有可能的,在这种情况下,您必须找出施加的原因

我建议看一看,因为那张海报与你的情况非常相似。

短小而甜美

ini_set('memory_limit', -1);

如果您想跳过调试

我的进程的虚拟内存被硬限制(太少了)

在bash shell中,我执行了以下操作:

ulimit-v(内存以字节为单位,无括号)


这解决了我的问题。我爱的上帝

我想他已经过了那一关。他的INI设置已经是100米了。我已经做了,但是没有用。事实上,如果我打印出我的phpinfo(),它将显示一个更高的内存限制,当我打印出ini_get_all()时,任何内存限制的更改都会显示出来。你可能是对的,可能存在一个有效的硬限制。我不知道怎么找到那个。也许我会问服务器故障!你是一个聪明的人,我做了一些关于bash内存限制的研究,看看ulimit-v,它很难限制我的内存!!!对我来说,问题是运行
php fpm
,但将配置文件复制到cli/conf.d而不是fpm/conf.d。解释为什么
php-i
显示我更新的配置,但脚本仍然崩溃。