91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Nginx進程調度

發布時間:2021-09-24 15:53:50 來源:億速云 閱讀:88 作者:柒染 欄目:開發技術

本篇文章為大家展示了如何理解Nginx進程調度,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Nginx采用的是固定數量的多進程模型,由一個主進程(MasterProcess)和數量與主機CPU核數相同的工作進程協同處理各種事件。

Nginx采用的是固定數量的多進程模型,由一個主進程(MasterProcess)和數量與主機CPU核數相同的工作進程協同處理各種事件。

主管理進程負責工作進程的配置加載、啟停等操作,工作進程負責處理具體請求。進程間的資源都是獨立的,每個工作進程處理多個連接,每個連接由一個工作進程全權處理,不需要進行進程切換,也就不會產生由進程切換引起的資源消耗問題。默認配置下,工作進程的數量與主機CPU核數相同,充分利用CPU和進程的親緣性(affinity)將工作進程與CPU綁定,從而最大限度地發揮多核CPU的處理能力。

Nginx主進程負責監聽外部控制信號,通過頻道機制將相關信號操作傳遞給工作進程,多個工作進程間通過共享內存來共享數據和信息。

如何理解Nginx進程調度

Tips:進程親緣性(affinity),使進程或線程在指定的CPU(核)上運行。

Nginx的工作進程有如下幾種調度方式:

  • 無調度模式:所有工作進程都會在連接事件被觸發時爭相與客戶端建立連接,建立連接成功則開始處理客戶端請求。無調度模式下所有進程都會爭搶資源,但最終只有一個進程可以與客戶端建立連接,對于系統而言這將在瞬間產生大量的資源消耗,這就是所謂的驚群現象。

  • 互斥鎖模式:每個工作進程都會周期性地爭搶互斥鎖,一旦某個工作進程搶到互斥鎖,就表示其擁有接收HTTP建立連接事件的處理權,并將當前進程的socket監聽注入事件引擎(如epoll)中,接收外部的連接事件。其他工作進程只能繼續處理已經建立連接的讀寫事件,并周期性地輪詢查看互斥鎖的狀態,只有互斥鎖被釋放后工作進程才可以搶占互斥鎖,獲取HTTP建立連接事件的處理權。當工作進程最大連接數的1/8與該進程可用連接(free_connection)的差大于或等于1時,則放棄本輪爭搶互斥鎖的機會,不再接收新的連接請求,只處理已建立連接的讀寫事件。互斥鎖模式有效地避免了驚群現象,對于大量HTTP的短連接,該機制有效避免了因工作進程爭搶事件處理權而產生的資源消耗。但對于大量啟用長連接方式的HTTP連接,互斥鎖模式會將壓力集中在少數工作進程上,進而因工作進程負載不均而導致QPS下降。

  • 套接字分片:套接字分片是由內核提供的一種分配機制,該機制允許每個工作進程都有一組相同的監聽套接字。當有外部連接請求時,由內核決定哪個工作進程的套接字監聽可以接收連接。這有效避免了驚群現象的發生,相比互斥鎖機制提高了多核系統的性能。該功能需要在配置listen指令時啟用reuseport參數。

Tips:Nginx 1.11.3以后的版本中互斥鎖模式默認是關閉的。套接字分片模式則因為由Linux內核提供進程的調度機制,所以性能最好。

上述內容就是如何理解Nginx進程調度,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博湖县| 区。| 武义县| 城口县| 绍兴县| 台南县| 晋州市| 沂南县| 巫溪县| 富平县| 汉沽区| 沈阳市| 五原县| 永宁县| 新田县| 肃宁县| 峨眉山市| 原阳县| 高陵县| 廉江市| 天祝| 丹棱县| 元江| 瓦房店市| 苏州市| 宝山区| 广东省| 永福县| 修武县| 敦化市| 通河县| 广宗县| 皮山县| 加查县| 安阳市| 当涂县| 娱乐| 韶关市| 永吉县| 邛崃市| 沁源县|