
En mi php5-fpm/php.ini tengo:
memory_limit = 512M
Sin embargo, después de atender algunas solicitudes, ps uxa
muestra:
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 está bastante más allá del límite. ¿Cómo es esto posible? Podría establecer un ulimit en los scripts de inicio de php-fpm, pero primero me gustaría entender por qué no funciona actualmente.
Ejecutando php5-fpm 5.4.26 en Ubuntu 12.04 LTS.
actualizarGracias a la respuesta de OMG-1 a continuación, logré que funcionara usando esta línea en php-fpm.conf.
php_admin_value[memory_limit] = 256M
Nota: la actualización de php.ini para 256M resultó en un valor actualizado de acuerdo con phpinfo()
, pero no en un comportamiento actualizado (incluso después de reiniciar). Aún pude asignar 500M usando el siguiente script. Claramente es un error en PHP.
Este fue mi guión de prueba, (gracias entonces).
<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>
Respuesta1
Tal vez un duplicado dehttps://stackoverflow.com/questions/15962634/nginx-or-php-fpm-ignores-memory-limit-in-php-ini
Nunca lo he visto funcionar, cuando pongo límites de memoria en php.ini con php-fpm, siempre uso php-fpm.conf y se supone que funcionan.
Verifique que su grupo maestro y el uso de php_admin_value[memory_limit] = 512M funcionen como se esperaba.