meh*_*aro 5 connection tcp socket
这可能看起来像一个已经讨论过/回答过的问题。但我专门寻找在任何地方都找不到明确回答的信息。
我有一个 Nginx + php-fpm 设置,它使用 unix 套接字将 Nginx 与后端 php-fpm fastcgi 进程对话。最近我听说基于 unix socket 的连接不像基于 tcp 的连接那样可扩展。不确定这里的限制因素是什么,尤其是当我从同一主机运行所有内容时。
我可以增加每个系统或用户(nginx)的最大文件描述符。我还可以增加每个 nginx 工作进程的这个限制。最大文件描述符是限制因素吗?
我在此设置中配置的网站很少,并且最大套接字(每个网站一个)。我使用的少于 50 个。当多个 nginx 线程在高负载下与后端的多个 php-fpm 实例通信时,每个套接字是否有最大并发连接数限制?或者,如果并发性非常高,实际上什么可以限制套接字允许这些连接?
是否还有其他因素会影响性能,如锁、磁盘 io 性能等?
我听说基于 UNIX 套接字的连接不如基于 tcp 的连接那么可扩展
恰恰相反。Unix 套接字比 TCP 连接更具可扩展性。因为当你使用 TCP 时,你必须使用整个网络堆栈。即使您在同一台机器上,每个数据包也必须被封装和解封装。使用 Unix 套接字,您可以进行进程到进程的通信。
然而,在许多情况下,不使用 TCP 数据包只是一个微观优化,真正的瓶颈在其他地方。
归档时间: |
|
查看次数: |
3648 次 |
最近记录: |