Linux
是否存在對套接字連接的保活?
預告:
儘管我的問題是故意的,但我正在處理連接到 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 次系統呼叫(在客戶端打開和連接,在伺服器上接受,在客戶端/伺服器上關閉),在必要時避免保持連接。