Atualmente, tenho um servidor com as seguintes especificações:
32 core
128gb RAM
1TB SSD hardisk
5Gbps network uplink
a configuração atual é nginx + php-fpm sem qualquer configuração de balanceamento de carga
nginx.conf
fastcgi_connect_timeout 9000;
fastcgi_send_timeout 9000;
fastcgi_read_timeout 9000;
fastcgi_buffer_size 256k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-56.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
php-fpm.conf
[www]
listen = /tmp/php-cgi-56.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = static
pm.status_path = /phpfpm_56_status
pm.max_children = 2000
pm.start_servers = 40
pm.min_spare_servers = 40
pm.max_spare_servers = 300
request_terminate_timeout = 9000
request_slowlog_timeout = 0s
slowlog = var/log/slow.log
não importa o quanto eu altere a configuração, eu ainda recebo 502 erros com php-fpm, o uso de memória RAM no servidor é de 12-15GB no máximo, nós temos muita RAM, mas o uso da CPU para php-fpm é alto. Se você tem alguma idéia com a configuração, por favor sugira ou comente.
Caso contrário, estou pensando em configurar o balanceamento de carga, como abaixo, pode precisar da sua ideia:
1) Usando o HaProxy
2)UsandooNginxeváriosservidorescomoopooldoPHP-FPM:
3) Use o servidor atual com vários pools php-fpm
upstream php {
server 127.0.0.1:9001 max_fails=3 fail_timeout=30s;
server 127.0.0.1:9002 max_fails=3 fail_timeout=30s;
server 127.0.0.1:9003 max_fails=3 fail_timeout=30s;
}
qual você acha mais adequado? Eu só preciso me livrar do problema 502.