alf*_*ish 7 nginx php-fpm socket 502-error
当大约 +10K 连接(netstat -an |grep 80 |wc -l)时,我经常在随机页面上收到此错误。当仍有 +10GB 的可用内存且服务器负载小于 3 时,就会发生这种情况。
我的相关配置:
/etc/php5/fpm/php.ini
memory_limit = 1024M
default_socket_timeout = 120
Run Code Online (Sandbox Code Playgroud)
/etc/php5/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 5
;pm.max_requests =20000 #uncommented with any value didn't fixed
request_terminate_timeout = 120s
Run Code Online (Sandbox Code Playgroud)
我还将上述 vlues(即 60 个孩子,10 个开始,10 个最大服务器)加倍,但无济于事。
/etc/nginx/nginx.conf
worker_connections 4024;
keepalive_timeout 10;
Run Code Online (Sandbox Code Playgroud)
Nginx 本身在 Varnish 和 memcached 后面是启用的。页面渲染通常非常快。
这似乎是一个很常见的问题,我找不到任何有用的解决方案,甚至无法分析可能的原因。因此,非常感谢您的提示/解决方案。
不幸的是,如果没有更多细节,很难对这个问题给出明确的答案。
不过我有几个猜测:
我的第一个猜测是,您的 php5-fpm 工作套接字对于您的负载而言侦听积压太少。Linux 上的 backlog 队列长度默认为 128。
要增加它,您应该:
net.core.somaxconnsysctl 值。listen.backlogphp5-fpm 配置设置。例如,您可以尝试将两者都增加到 2048 以查看是否有帮助。
我的第二个猜测是 nginx 工作人员的每个进程最大打开文件描述符限制。增加它的正确方法取决于您的分布。在 Ubuntu/Debian 上,您应该查看/etc/default/nginx文件和worker_rlimit_nofilenginx 配置设置。
| 归档时间: |
|
| 查看次数: |
21132 次 |
| 最近记录: |