Customizando PHP5-FPM: mudanças entre as edições

De MochilaWiki
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 13: Linha 13:


aí teriamos uma configuração assim
aí teriamos uma configuração assim
pm.max_children = 70
pm.max_children = 70
pm.start_servers = 20
pm.start_servers = 20
pm.min_spare_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 35
pm.max_spare_servers = 35
pm.max_requests = 500
pm.max_requests = 500


baseado no artigo [http://myshell.co.uk/index.php/adjusting-child-processes-for-php-fpm-nginx/ Adjusting child processes for PHP-FPM (Nginx)]
baseado no artigo [http://myshell.co.uk/index.php/adjusting-child-processes-for-php-fpm-nginx/ Adjusting child processes for PHP-FPM (Nginx)]
outra solução é utilizar ondemand ao invés de dynamic
pm = ondemand
pm.max_children = 75
pm.process_idle_timeout = 10s
pm.max_requests = 500
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
dica http://linuxbsdos.com/2015/02/17/how-to-reduce-php-fpm-php5-fpm-ram-usage-by-about-50/
outro exemplo de ondemand
pm = ondemand
pm.process_idle_timeout = 30s
pm.max_children = 10
pm.max_requests = 0

Edição atual tal como às 19h16min de 30 de julho de 2015

com esse comando é possível saber quanto cada processo php5-fpm está consumindo

ps --no-headers -o "rss,cmd" -C php5-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'

mostra o consumo total do aplicativo no servidor

ps -ylC php5-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%s\n", "Total memory used by PHP-FPM child processes: "; printf "%dM\n", s/1024 }'

Pensando que você tenha um VPS com 8GB de ram e os processos bem estressados estejam consumindo 85MB de ram teriamos o calculo de

pm.max_children = 6144MB / 85MB = 72

aí teriamos uma configuração assim

pm.max_children = 70
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 35
pm.max_requests = 500

baseado no artigo Adjusting child processes for PHP-FPM (Nginx)

outra solução é utilizar ondemand ao invés de dynamic

pm = ondemand
pm.max_children = 75
pm.process_idle_timeout = 10s
pm.max_requests = 500


pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500


dica http://linuxbsdos.com/2015/02/17/how-to-reduce-php-fpm-php5-fpm-ram-usage-by-about-50/


outro exemplo de ondemand

pm = ondemand
pm.process_idle_timeout = 30s
pm.max_children = 10
pm.max_requests = 0