Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Дамы и господа, подскажите, куда смотреть,
- на 4 серверах имеется связка nginx+php-fpm.
- Трафик между серверами раскидывается раундробингом, то есть равномерно
- Проводим эксперимент 1. с сервера 1 проксируем весь траф на сервер 2. Полет нормальный, нагрузка растет равномерно, затыков нет
- Проводим эксперимент 2. с сервера 1 проксируем весь траф на сервер 3.
- При увеличении трафа начинаются тормоза на этапе соединения между nginx и php.
- Как это выглядит:
- http://site/test.html отдается мгновенно
- http://site/test.php в котором
- <?
- $s = microtime(true);
- phpinfo();
- $diff = microtime(true) - $s;
- echo $diff;
- отдается секунд за 2-15, при этом время выполнение ПХП скрипта - доли секунды.
- При этом практически совсем не растет нагрузка на проц, памяти и IO
- Железо на всех серверах примерно одинаковое, более того, серер 3 помощнее
- nginx.conf
- user nginx;
- worker_processes 16;
- worker_rlimit_nofile 163840;
- error_log /var/log/nginx/error.log;
- pid /run/nginx.pid;
- events {
- worker_connections 102400;
- multi_accept on;
- }
- http {
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
- log_format count '$time_local" $status "';
- log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
- log_format host '$host $remote_addr - $remote_user [$time_local] "$request"';
- access_log /var/log/nginx/access.log main;
- sendfile on;
- keepalive_timeout 65;
- client_max_body_size 250m;
- index index.html index.htm;
- server {
- listen *:80;
- server_name site ;
- root /home/mg/site;
- index index.php;
- location ~ .php$ {
- fastcgi_pass 127.0.0.1:9001;
- fastcgi_index index.php;
- fastcgi_param PHPRC "/home/mg/php";
- fastcgi_param SCRIPT_FILENAME /home/mg/site$fastcgi_script_name;
- include fastcgi_params;
- }
- }
- php-fpm.conf
- [mg]
- listen = 127.0.0.1:9001
- listen.backlog = -1
- listen.owner = mg
- listen.group = www
- listen.mode=0666
- user = mg
- pm = dynamic
- pm.max_children = 150
- pm.start_servers = 16
- pm.min_spare_servers = 6
- pm.max_spare_servers = 50
- sysctl.conf
- net.ipv4.tcp_tw_recycle=0
- net.ipv4.tcp_tw_reuse=1
- net.ipv4.tcp_timestamps = 1
- net.core.netdev_max_backlog=60000
- net.core.somaxconn=62800
- net.netfilter.nf_conntrack_max=1548576
- net.ipv4.ip_forward = 1
- net.ipv4.tcp_fin_timeout=10
- net.ipv4.tcp_max_syn_backlog = 262144
- net.ipv4.tcp_syncookies=1
- net.ipv4.tcp_max_tw_buckets = 720000
- net.ipv4.tcp_fin_timeout = 10
- net.ipv4.tcp_keepalive_time = 600
- fs.file-max=49280420
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement