Linux

是否存在對套接字連接的保活?

  • September 27, 2013

預告:

儘管我的問題是故意的,但我正在處理連接到 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之類的東西?

不,keepalives 防止遠端端超時。由於主機知道連接雙方的狀態,因此保活是多餘的。

讓連接保持活動狀態會消除(甚至是一點點)與創建/拆除連接相關的一些成本嗎?

是的,以維護更多文件描述符為代價,實際上這可能是一個非常便宜的成本。建立連接並關閉它會引發 5 次系統呼叫(在客戶端打開和連接,在伺服器上接受,在客戶端/伺服器上關閉),在必要時避免保持連接。

引用自:https://serverfault.com/questions/542235