ano*_*one 1 linux tcpip nginx keepalive socket
预简报:
尽管我的问题很广泛,但我正在处理连接到 php-fpm (fcgi) 的 nginx,它通过本地套接字 (/tmp/somesocket.socket) 提供服务。
Nginx 有一个设置来保持与 fcgi 后端的连接(http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_keep_conn)。
这就是我的问题所涉及的。
题:
在linux中,当连接到本地套接字时,是否存在keepalives这样的东西?
保持连接是否会消除(甚至是一点点)与创建/拆除连接相关的一些开销?
谢谢。
我假设您在这里指的是本地 unix 套接字。
在linux中,当连接到本地套接字时,是否存在keepalives这样的东西?
不,keepalive 防止远程端超时。由于主机知道连接双方的状态,因此保持连接是多余的。
保持连接是否会消除(甚至是一点点)与创建/拆除连接相关的一些开销?
是的,以维护更多文件描述符为代价,这在实践中可能是非常便宜的成本。建立连接并关闭它会导致 5 次系统调用(在客户端打开并连接,在服务器上接受,在客户端/服务器上关闭),在必要时避免维护连接。