如下圖描述,當(dāng)SO_REUSEPORT選項有效時,一個單獨(dú)的監(jiān)聽socket通知工作進(jìn)程接入的連接,并且每個工作線程都試圖獲得連接。 當(dāng)SO_REUSEPORT選項啟用是,存在對每一個IP地址和端口綁定連接的多個socket監(jiān)聽器,每一個工作進(jìn)程都可以分配一個。系統(tǒng)內(nèi)核決定哪一個有效的socket監(jiān)聽器(通過隱式的方式,給哪一個工作進(jìn)程)獲得連接。這可以減少工作進(jìn)程之間獲得新連接時的封鎖競爭(譯者注:工作進(jìn)程請求獲得互斥資源加鎖之間的競爭),同時在多核系統(tǒng)可以提高性能。然而,這也意味著當(dāng)一個工作進(jìn)程陷入阻塞操作時,阻塞影響的不僅是已經(jīng)接受連接的工作進(jìn)程,也同時讓內(nèi)核發(fā)送連接請求計劃分配的工作進(jìn)程因此變?yōu)樽枞?/p> |
|
來自: 老鶴閑聊 > 《Web Server》