在我的php5-fpm / php.ini中有:
memory_limit = 512M
但是,经过几个请求, ps uxa显示:
root 1130 0.0 0.3 339892 8064 ? Ss 05:29 0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf) app 1131 0.6 38.9 1383692 798240 ? S 05:29 0:50 php-fpm: pool www app 1132 0.7 38.6 1383656 792736 ? S 05:29 0:57 php-fpm: pool www
798M RSS已经超出限制。 这怎么可能? 我可以在php-fpm初始化脚本中设置一个ulimit,但是首先我想理解为什么它现在不起作用。
在Ubuntu 12.04 LTS上运行php5-fpm 5.4.26。
更新感谢OMG-1的回答,我在php-fpm.conf中使用了这一行。
php_admin_value[memory_limit] = 256M
注意:根据phpinfo() ,更新php.ini for 256M确实导致了一个更新的值,但没有更新的行为(即使在重新启动后) – 我仍然可以使用下面的脚本分配500M。 很明显,PHP中的一个错误。
这是我的testing脚本,( 谢谢你 )。
<pre> <?php error_reporting(E_ALL); ini_set('display_errors', 'on'); function tryAlloc($megabyte){ echo "try allocating {$megabyte} megabyte..."; $dummy = str_repeat("-",1048576*$megabyte); echo "pass."; echo "Usage: " . memory_get_usage(true)/1048576; echo " Peak: " . memory_get_peak_usage(true)/1048576; echo "\n"; } for($i=10;$i<1000;$i+=50){ $limit = $i.'M'; ini_set('memory_limit', $limit); echo "set memory_limit to {$limit}\n"; echo "memory limit is ". ini_get("memory_limit")."\n"; tryAlloc($i-10); } ?> </pre>
也许重复的https://stackoverflow.com/questions/15962634/nginx-or-php-fpm-ignores-memory-limit-in-php-ini
我从来没有见过它的工作,当我把内存限制在php.ini与php-fpm,我总是使用php-fpm.conf,他们应该工作。
请validation您的主池和使用php_admin_value [memory_limit] = 512M按预期工作?