linux殺死nginx進(jìn)程 高并發(fā)nginx服務(wù)器是多進(jìn)程還是多線程?
高并發(fā)nginx服務(wù)器是多進(jìn)程還是多線程?Nginx將根據(jù)需要同時(shí)運(yùn)行多個(gè)進(jìn)程:一個(gè)主進(jìn)程和幾個(gè)工作進(jìn)程。配置緩存時(shí),將有緩存加載程序進(jìn)程和緩存管理器進(jìn)程。Nginx主要通過“共享內(nèi)存”機(jī)制實(shí)現(xiàn)進(jìn)程間
高并發(fā)nginx服務(wù)器是多進(jìn)程還是多線程?
Nginx將根據(jù)需要同時(shí)運(yùn)行多個(gè)進(jìn)程:一個(gè)主進(jìn)程和幾個(gè)工作進(jìn)程。配置緩存時(shí),將有緩存加載程序進(jìn)程和緩存管理器進(jìn)程。Nginx主要通過“共享內(nèi)存”機(jī)制實(shí)現(xiàn)進(jìn)程間通信。主進(jìn)程應(yīng)作為根進(jìn)程運(yùn)行,而工作進(jìn)程、緩存加載程序和緩存管理器應(yīng)作為非特權(quán)用戶運(yùn)行。就工作模式而言,nginx可分為單工作流程模式和多工作流程模式。在單工作進(jìn)程模式下,除了主進(jìn)程之外還有一個(gè)工作進(jìn)程,工作進(jìn)程是單線程的;在多工作進(jìn)程模式下,每個(gè)工作進(jìn)程包含多個(gè)線程。Nginx默認(rèn)為單工作進(jìn)程模式。
進(jìn)程間通信6種方法的優(yōu)缺點(diǎn)?
(1)管道分為命名管道和無名管道。無名流水線是一種半雙工通信方式。數(shù)據(jù)只能向一個(gè)方向流動(dòng),并且只能在相關(guān)進(jìn)程之間使用。它通常用于兩個(gè)不同進(jìn)程之間的通信。命名管道也是一種半雙工通信模式,但它允許在不相關(guān)的進(jìn)程之間進(jìn)行通信。
(2)信號(hào)量是一個(gè)計(jì)數(shù)器,可用于控制多個(gè)線程對(duì)共享資源的訪問。它不用于交換大量數(shù)據(jù),而是用于在多個(gè)線程之間進(jìn)行同步。它常被用作鎖緊裝置。因此,它主要用于進(jìn)程之間以及同一進(jìn)程中不同線程之間的同步。
(3)信號(hào)是一種更復(fù)雜的通信方式,用于通知接收過程某個(gè)時(shí)間已經(jīng)發(fā)生。
(4)消息隊(duì)列是消息的鏈表,存儲(chǔ)在內(nèi)核中,由消息隊(duì)列標(biāo)識(shí)符標(biāo)識(shí)。消息隊(duì)列克服了信號(hào)傳輸信息較少、流水線只能承載格式化字節(jié)流和緩沖區(qū)大小有限的缺點(diǎn)。
(5)共享內(nèi)存是映射可由其他進(jìn)程訪問的內(nèi)存塊。這段共享內(nèi)存是由一個(gè)進(jìn)程創(chuàng)建的,但可以由多個(gè)進(jìn)程訪問。它通常與其他通信機(jī)制(如信號(hào)量)一起使用,以實(shí)現(xiàn)進(jìn)程之間的同步和通信。
(6)套接字可用于不同進(jìn)程之間的通信。