Mudanças entre as edições de "Customizando PHP5-FPM"

De MochilaWiki
Ir para navegaçãoIr para pesquisar
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 4: Linha 4:
 
</source>
 
</source>
  
 +
mostra o consumo total do aplicativo no servidor
 +
<source lang="bash">
 +
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 }'
 +
</source>
  
 
Pensando que você tenha um VPS com 8GB de ram e os processos bem estressados estejam consumindo 85MB de ram teriamos o calculo de
 
Pensando que você tenha um VPS com 8GB de ram e os processos bem estressados estejam consumindo 85MB de ram teriamos o calculo de
Linha 9: 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 22h16min 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