Nginx PHP耗尽,限制为4GB而不是2GB?

Nginx PHP耗尽,限制为4GB而不是2GB?,nginx,php,Nginx,Php,我是一家大型公司的开发人员,该公司有一些遗留代码,这些代码在导出函数上需要大量内存。为了解决这个问题,ini_设置(“内存限制”、“4G”);使用 问题是,该脚本因内存耗尽而崩溃。如果我将限制设置为2G,脚本将一直运行到最后。它甚至没有达到1GB的峰值内存使用量 由于代码是版本控制的,并且与公司的其他人共享,所以我无法更改限制,并且在本地安装时更改它很麻烦 我的问题是:什么会使脚本在4GB限制下崩溃而不是2GB PS:我的设置是一台virtualbox机器,运行带有nginx和php fpm的D

我是一家大型公司的开发人员,该公司有一些遗留代码,这些代码在导出函数上需要大量内存。为了解决这个问题,ini_设置(“内存限制”、“4G”);使用

问题是,该脚本因内存耗尽而崩溃。如果我将限制设置为2G,脚本将一直运行到最后。它甚至没有达到1GB的峰值内存使用量

由于代码是版本控制的,并且与公司的其他人共享,所以我无法更改限制,并且在本地安装时更改它很麻烦

我的问题是:什么会使脚本在4GB限制下崩溃而不是2GB

PS:我的设置是一台virtualbox机器,运行带有nginx和php fpm的Debian。虚拟机有4GB内存(尽管改变它似乎没有任何区别)


[更新]

创建了一个具有64位操作系统的新虚拟机,如果我将vm内存设置为2GB,它就可以工作。(如果我使用4GB,它不会)。
既然我对2GB没问题,我就结束这个问题。

也许您使用的是32位系统


如果你的虚拟机只有4GB,那么你可能应该给它更多的内存。

这是一个自然的限制:2甚至4 GB的地址空间用于文件映射,这也需要一些内存页


最终的解决方案是使用64位PHP解释器(如有可能,切换到64位系统)。

32位系统4GB上的内存空间有限。我猜当PHP试图获得4GB内存时,可能会出现一些内存冲突。

您是否更改了ini中的
最大执行时间
?这是64位系统的好提示。我将尝试创建一个新的虚拟机,看看它是否有效。