PHP内存是否限制预先分配给PHP的内存
我们网站上的一些页面达到了PHP内存限制,目前设置为128MB。当我们请求将内存限制提高到256MB时,托管公司的工程师告诉我们: 在我们的服务器上,“平均请求需要不到64MB的RAM” 及 “将内存限制改为256MB实际上会产生192M的平均内存分配,这在大多数请求中都不会被使用” 内存限制量实际上是预先分配的,并且对于我们的大多数请求来说是192MB,这是正确的吗PHP内存是否限制预先分配给PHP的内存,php,ubuntu,nginx,memory-limit,Php,Ubuntu,Nginx,Memory Limit,我们网站上的一些页面达到了PHP内存限制,目前设置为128MB。当我们请求将内存限制提高到256MB时,托管公司的工程师告诉我们: 在我们的服务器上,“平均请求需要不到64MB的RAM” 及 “将内存限制改为256MB实际上会产生192M的平均内存分配,这在大多数请求中都不会被使用” 内存限制量实际上是预先分配的,并且对于我们的大多数请求来说是192MB,这是正确的吗 谢谢大家! 否。您不能使用内存限制预分配内存 也可以参考这篇文章: 也许他的意思是,全球范围内将限额提高到2.56亿,平均申请量
谢谢大家! 否。您不能使用内存限制预分配内存 也可以参考这篇文章: 也许他的意思是,全球范围内将限额提高到2.56亿,平均申请量达到1.92亿。这意味着有很多人达到了荒谬的64M下限。来自: 这将设置脚本使用的最大内存量(以字节为单位) 允许分配。这有助于防止编写错误的脚本 耗尽服务器上的所有可用内存。请注意,没有 内存限制,将此指令设置为-1
根据我的经验,许多网站需要超过1.28亿美元。不,它不需要。它设置允许脚本分配的最大值。它不会自行分配。使用php
memory\u get\u usage
函数测试它
PHP内存限制的要点是“防止编写糟糕的脚本耗尽服务器上的所有可用内存”,而不是“预先分配内存大小” 例如,它只是一个根据需要强制执行的硬上限,或者另一个词“脚本可能消耗的最大内存量”
REF:您是否确切知道内存限制增加的原因?这似乎会给我带来危险。好问题,尽管+1内存限制没有更改或增加,但老实说,我们不知道在生产环境中将其设置为128MB,直到收到一些投诉,称某些管理功能无法正常工作。在我们要求将内存限制提高到256MB后,托管公司的工程师刚刚告诉我们上述内容。这是堆还是堆栈?
memory\u limit
选项这是个好问题。我不知道,也找不到解释它的文件。
zend_mm_safe_error(heap, "Allowed memory size of %ld bytes exhausted (tried to allocate %ld bytes)", heap->limit, size);