nginx的程序數量可以通過配置檔案來部署,在正式的生產環境中,nginx通常使用乙個master程序來管理多個worker程序,一般情況下worker程序的數量等於伺服器cpu的核心數。在這種情況下,每個worker程序都是繁忙的,他們在真正的提供網際網路服務,而master程序則很清閒,只負責監控worker程序。
多個worker程序處理網際網路請求不但可以提高服務的健壯性,因為乙個worker程序出錯後,其它worker程序仍然可以正常提供服務,並且master程序可以很快拉起出錯程序,恢復正常的服務。同時將worker程序和cpu核心數設定的一樣,這樣可以為每個程序繫結乙個核,避免了程序間切換的開銷。這與apache伺服器不同,apache伺服器的每個程序在乙個時刻只處理乙個請求,因此,如果需要處理更多的併發請求就需要設定更多的程序或執行緒,當伺服器上擁有很多個程序,大量的程序間的切換將帶來很多無謂的系統資源消耗。nginx通過事件驅動機制,乙個worker程序可以處理多個請求,併發處理請求數隻受限於記憶體的大小。這樣就大大提高了nginx的併發效能。
程序間的關係
程序間有什麼關係呢?我們都知道使用fork函式建立程序是一次呼叫兩次返回。父程序返回子程序的程序id 非0 子程序返回0值。很顯然,使用fork建立出來的兩個程序是父子關係。那如果兩個程序都是同乙個父程序建立出來的,它們是什麼關係呢?兄弟 關係。那麼,兩個或者多個程序之間,都有什麼關係呢?在介紹程序...
程序間的關係
1.每個程序都會有乙個程序組,程序組是多個程序的集合,多個程序組組成乙個會話。檢視程序組的id,其中每個程序組都有乙個組長,程序組的id就是該程序組長的id號。該程序組是否存在取決於程序組中是否有程序,與程序組長是否結束無關。2.設定程序組的id,如果pid為0,那麼將呼叫該函式的程序的pid設定為...
程序間關係
1 程序組 程序組是乙個或多程序的集合。通常,它們同一作業相關聯,可以接收來自同一終端的各種訊號。每個程序組有乙個唯一的程序組id。每個程序都可以有乙個組長程序。組長程序的標識是,其程序組id等於其程序id。組長程序可以建立乙個程序組,建立該組中的程序,然後終止。只要在某個程序組中乙個程序存在,則該...