鍍金池/ 問答/Java  Linux/ nginx中永遠只有一個worker進程來處理epoll中的listen fd,

nginx中永遠只有一個worker進程來處理epoll中的listen fd,為什么?

為了避免驚群問題直接只讓一個worker進程來監(jiān)聽,通過accept_mutex來控制(現(xiàn)在的版本好像默認關閉了有新的處理方式了,姑且當我說的是開啟accept_mutex的舊版本吧),但是這樣和直接主進程來處理有什么區(qū)別嗎?怎么就利用多核優(yōu)勢了呢?我能想到的就是一個worker崩了不會都崩了而已,只是增強一點魯棒性,但是從頭到尾都只有一個worker在處理所有的監(jiān)聽呀(上次拿到鎖的會交出所有的fd),在我看來,就是增強了健壯性而已,網(wǎng)上很多人說提高了并發(fā),利用了多核優(yōu)勢,我該如何理解呢?

回答
編輯回答
遺莣

其實是個人的理解問題,只是用一個worker來監(jiān)聽 監(jiān)聽套接字 而已,用多線程的worker來監(jiān)聽 連接套接字,自然就利用了多核優(yōu)勢

2017年10月11日 20:46