日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Nginx笔记-Nginx中进程结构及使用Linux信号量管理

發布時間:2025/3/15 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx笔记-Nginx中进程结构及使用Linux信号量管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先是Apache和Nginx的區別(這里只提Nginx的好處)

Apache處理請求性能低。

?

Apache:一個進程處理一個請求,阻塞式;

Nginx:一個進程處理多個請求,非阻塞式;

?

?

Nginx的應用場景

Nginx只能處理靜態資源,動態資源還得反向代理到應用服務器上。

下面是Nginx處理請求的過程:

Nginx有點及特點

熱部署、平滑升級、開源及二次開發、高并發高性能、擴展性好、異步非阻塞的事件驅動模型

?

Nginx是多進程結構:

主進程Master Process管理如下幾個進程:

CM(Cacah Manager)、CL(Cacah Loader)、Worker Process(這個在一般在配置文件中為auto,會根據CPU核數自己生成)。

?

Master Process有進程管理的功能,會把掛掉的進程拉起來,所以如果要改源碼擴展盡可能不要修改Master Process。

?

Cacah Loader用于加載緩存

Cacah Manager用于管理緩存

而正在存儲緩存的地方是在worker process里面。所有子進程都是用共享內存的方式進行通信。

?

下面是Linux的信號量管理機制。

最關鍵的就是kill關鍵字:

一共有64個指令,要弄清楚如下幾個:

Kill -17 $PID? ??? ??? ??? ? #父子進程通信的信號量,子進程掛了,會給父進程發信號

Kill -3 $PID? ??? ??? ??? ??? #將應用的運行情況dump下來。由于可以吧所有線程當前運行到哪里的情況輸出

Kill -15 $PID ? ? ? ? ? ? ? ?#普通的Kill,程序退出,如果卡死,是殺不了的

Kill -9 $PID? ??? ??? ??? ??? #不管在干嘛,阻塞,運行都kill

Kill -1 $PID? ??? ??? ??? ? ? #重新加載配置文件

?

利用信號量進行管理Nginx

一般不建議直接對worker進程進行管理,而是使用manager去管理

nignx是事件綁定的,他的worker子進程一般是你電腦有幾顆cpu就給你多少個

在配置文件里面有個worker_processes一般是auto就是nginx自己去檢測的。

如下所示:

當前Nginx只有一個worker process,原因是我這臺只有一個cpu

可以通過修改配置文件,來改變,如下:

改成4,然后進行重載配置文件

這里有兩條命令:

./nginx -reload kill -1 xxxx

就可以看到:

有4個worker process了。

這里如果要改源碼或者其他的操作,一般都是對worker process線程進行。

另外是./nginx -h為help

?

?

總結

以上是生活随笔為你收集整理的Nginx笔记-Nginx中进程结构及使用Linux信号量管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。