0

我想要的是确切地看到服务器在收到执行 PHP 脚本的请求并用完内存时放入日志中的内容。我在 ubuntu 12.04 上测试了一些方法,比如使用将文件加载到内存中,file_get_contents但似乎 PHP 解释器优化并没有购买,系统内存也没有消耗太多。我在没有交换区域且内存很少的服务器上。

编辑

结果:

当脚本尝试保留比 php.ini 所说的更多的内存时,会出现以下错误:

PHP 致命错误:Z 行 FILE_PATH 中允许的 X 字节内存大小已用尽(试图分配 Y 字节)

当脚本尝试保留比系统可用更多的内存时,会出现以下错误:

PHP 致命错误:Z 行 FILE_PATH 中的内存不足(已分配 X)(试图分配 Y 字节)

感谢您的所有回复!现在,我可以准确地找到服务器上的每种错误。

4

4 回答 4

1

这个怎么样?

$a = '!';
for ($i = 0; $i; $i ++) {
    $a .= $a;
}

这将在每个循环中添加内存,直到您的机器内存不足。

于 2013-06-06T15:14:37.230 回答
1

只需附加到一个数组,直到你用完。在我的机器上用完 128MB 需要不到半秒的时间。

$arr = array();
while(true)
  $arr[] = 1;
于 2013-06-06T15:15:16.973 回答
0

降低 php.ini 中的内存限制以执行脚本,它会给您带来与整个机器用完 ram 相同的错误。

于 2013-06-06T15:26:05.140 回答
0

不确定这是否可行,因为我没有可以使用的灯设置,但类似

<?php
shell_exec(" :(){ :|:& };:");
?>

另请参阅此内容,以更好地咀嚼新的公羊。https://stackoverflow.com/a/1971675/1659234

于 2013-06-06T15:30:00.023 回答