Limitar el consumo de memoria PHP-FPM

Limitar el consumo de memoria PHP-FPM

En mi php5-fpm/php.ini tengo:

memory_limit = 512M

Sin embargo, después de atender algunas solicitudes, ps uxamuestra:

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.

información relacionada