(1) nginx整體結構、進程模型

一:nginx的整體結構

(1.1)master進程和worker進程概覽(父子關係)

 //啓動nginx,看到了一個master進程,一個worker進程

 //ps -ef命令

 //第一列:UID,進程所屬的用戶id

 //第二列:進程ID(PID),用來唯一的標識一個進程

 //第三列:父進程ID(PPID)。 fork(),worker進程是被master進程通過fork()創建出來的-worker進程是master進程的子進程,master是父進程

(1.2)nginx進程模型

//1個master進程,1到多個worker進程 這種工作機制來對外服務的;這種工作機制保證了 nginx能夠穩定、靈活的運行;
	//a)master進程責任:監控進程,不處理具體業務,專門用來管理和監控worker進程;master,角色是監工,比如清閒;
	//b)worker進程:用來幹主要的活的,(和用戶交互);
	//c)master進程和worker進程之間要通訊,可以用 信號 ,也可以用 共享內存 ;
	//d)穩定性,靈活性,體現之一:worker進程 一旦掛掉,那麼master進程會立即fork()一個新的worker進程投入工作中去; 

(1.3)調整worker進程數量

//worker進程幾個合適呢?公認的做法: 多核計算機,就讓每個worker運行在一個單獨的內核上,最大限度減少CPU進程切換成本,提高系統運行效率;
	//物理機:4核(4個processors);

	//工作站:2個物理cpu ,藍色的一個cpu,紅色的一個cpu
	//每個物理cpu裏邊內核數量,是4個;core1 --core4
	//每個core裏邊有兩個邏輯處理器(超線程技術/siblings)
	//16個processors(最細小的單位,也就是平時大家說的處理器個數)

 二:nginx進程模型細說

       //穩定 ,靈活

    //(2.1)nginx重載配置文件

    //(2.2)nginx熱升級,熱回滾

    //(2.3)nginx的關閉

    //(2.4)總結

    //多進程,多線程:

    //多線程模型的弊端:共享內存,如果某個線程報錯一定會影響到其他線程,最終會導致整個服務器程序崩潰;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章