在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Nginx 如何實現高性能低消耗

科技綠洲 ? 來源:Linux開發架構之路 ? 作者:Linux開發架構之路 ? 2023-11-11 11:31 ? 次閱讀

Nginx 是一個輕量級的HTTP 服務程序,相比其他服務器程序如Apache,Nginx占用內存少,穩定性高,并發處理能力強。同時Nginx 還是一個反向代理服務程序,和郵件代理服務程序。Nginx具有豐富的模塊庫、靈活的配置、較低資源消耗等優點。下面,我們一起深入看一下Nginx的工作機制

1. Nginx 如何實現高性能低消耗的呢?

我們從以下幾個方面說明以下:

網絡事件處理機制

  • Nginx 采用異步非阻塞的方式處理請求,可以同時處理上萬的請求
  • Nginx 支持 select/epoll 等流行事件處理機制,根據系統環境自動選擇
  • Nginx 采用獨立于系統的事件處理機制,能夠高效處理請求

資源分配技術

  • Nginx 采用分階段資源分配技術,使得它的CPU和內存消耗非常低

多核處理優化

  • Nginx 默認采用多進程啟動模式
  • Nginx 包含Master 進程 和 Worker 進程
  • 能夠充分利用 SMP 對稱多處理的優勢,減少Worker進程磁盤I/O的阻塞
  • Nginx 支持Worker進程和CPU內核 一一對應綁定,避免進程上下文的切換致使cache失效

基于上面提到技術,以及Nginx很多地方的優化,讓Nginx成為最快的HTTP服務器。

2.Nginx的進程模型

在Nginx的技術架構中,進程模型是至關重要的一部分。接下來,我們一起看看Nginx進程模型,以及它們的工作機制。

Linux 系統中,Nginx默認以守護進程daemon方式啟動,默認采用多進程方式。Nginx包括兩種類型的進程:

  • Master 進程,數量只有一個,管理Nginx本身和Worker進程
  • Worker 進程,數量一般和CPU核數相等,Nginx的所有請求處理,均是在Worker進程中完成

下面,我們分別深入看一下Master和Worker進程。

2.1 Master 進程工作機制

在Nginx啟動時,Master進程創建,主要負責初始化Nginx和相關模塊、fork Worker進程、接收處理外界信號等工作。

Nginx的初始化過程:

  • 解析配置文件,這是Nginx初始化最重要的一個環節
  • 調用各個配置指令回調函數,完成各個模塊的配置、相互關聯等
  • 建立listen 的 socket(listenfd)
  • 準備工作都完成后,fork worker子進程和cache子進程

Master 進程信號處理機制

我們通過kill命令發送信號給Nignx Master 進程,看看Master進程如何處理:

圖片

分析流程:

  • Master 進程接收到 HUP 信號
  • Master 進程重新加載配置文件
  • Master 進程啟動新的Worker進程
  • Master 進程發送信號給Worker 進程
  • 老的Worker進程不再接收新的請求
  • 老的Worker進程處理完當前請求,退出
  • 至此,Nginx完成平滑重啟

注意:Nginx 0.8 版本以后,提供了 -s參數,用于管理Nginx服務的停止和重啟,注意line 11:

圖片

2.2 Worker 進程工作機制

Worker進程負責所有請求的處理工作,我們通過一個HTTP請求,來梳理一下Worker的工作流程:

  • 新的請求到來:所有的Work進程的listenfd都會變得可讀
  • 竟搶互斥鎖:所有 Worker 進程在注冊listenfd讀事件前,要先搶accept_mutex
  • 搶到互斥鎖的Worker,注冊listenfd讀事件,在事件中調用accept接受該連接
  • 拿到請求后,Worker進程開始讀取請求,解析請求,處理請求,產生數據,再返回給客戶端
  • Worker進程斷開連接

需要注意:一個HTTP請求,完全由Worker進程處理,而且只在一個Worker中處理

2.3 Master-Worker 進程架構機制的優勢有哪些??

對于每個Worker 進程來說,獨立的進程,不需要加鎖,節約鎖導致的資源開銷;worker進程之間,互不干擾,平滑重啟就是很好的例子,服務不中斷。

2.4 網絡事件處理機制

Nginx 采用的是異步非阻塞事件處理機制,支持select/poll/epoll/kqueue 等等。Nginx 同時會監控多個事件,調用他們是阻塞的。但是調用有超時時間,在超時時間內,如果有事件準備好了,就返回,否則重新放入epoll中。當讀寫返回EAGAIN時,事件將會被再次放入epoll中。

處理線程只有一個,同時處理的請求也只有一個,所謂多請求并發,只是在不斷的切換請求而已。雖然是切換,但這種切換不涉及上下文切換,相比十分輕量。更多的并發,只是會占用更多的內存。

進程相關的還有,信號和定時器,這部分另外單獨講解。

  1. Nginx 包含哪些模塊

Nginx是模塊化架構的服務,豐富的模塊,松散耦合,也讓Nginx更加強大!我看看Nginx 都有哪些模塊

內核模塊

實現了底層的通訊協議,為其他模塊/進程構建運行環境、協作基礎,打開listen 的端口,啟動worker進程

HTTP/Mail模塊

兩個特殊模塊,位于內核模塊和各功能模塊間;在內核模塊之上實現了另一層的抽象;處理HTTP/MAIL協議事件;確保調用功能模塊順序正確。

Event模塊

負責監聽accept后建立的連接,對讀寫事件進行添加刪除;與非阻塞 I/O 模型結合使用;支持select/poll/epoll/kqueue等;注意驚群效應,后面有解釋。

Handler模塊

負責接受客戶端請求并產生輸出;通過配置文件中location指令配置 content handler 模塊。

Filter模塊

負責輸出內容處理,修改輸出內容;Fiter模塊在獲取回復內容之后,向用戶發送響應之前,執行處理動作;調用順序在編譯時就確定了。

Upstream模塊

實現反向代理的功能,負責將請求轉發到后端服務器上,并讀取響應,發回客戶端;跨越單機的限制,完成網絡數據的接收、處理和轉發;

LoadBalancer模塊

根據配置指定算法,在眾多的后端服務器中選擇一個,完成請求的轉發服務器;都有哪些算法呢?

驚群效應:

  • 當內核 accept 一個連接時,會喚醒所有等待中的進程
  • 但實際上只有一個進程能獲取連接,其他的進程都是被無效喚醒的
  • 所以 Nginx 采用了自有的一套 accept 加鎖機制,避免多個進程同時調用 accept
  • Nginx 多進程的鎖在底層默認是通過 CPU 自旋鎖來實現。如果操作系統不支持自旋鎖,就采用文件鎖。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10863

    瀏覽量

    211781
  • 內存
    +關注

    關注

    8

    文章

    3025

    瀏覽量

    74055
  • 網絡
    +關注

    關注

    14

    文章

    7565

    瀏覽量

    88792
  • nginx
    +關注

    關注

    0

    文章

    149

    瀏覽量

    12176
收藏 人收藏

    評論

    相關推薦

    解析keepalived+nginx實現高可用方案技術

    之前講了Nginx 如何實現負載均衡以及如何實現動靜分離,實現系統的分布式部署,提高系統的并發性能。但是,有個問題:如果
    的頭像 發表于 09-30 15:52 ?3763次閱讀
    解析keepalived+<b class='flag-5'>nginx</b><b class='flag-5'>實現</b>高可用方案技術

    高性能負載均衡Tomcat集群的實現

    Nginx+Tomcat搭建高性能負載均衡集群
    發表于 08-21 14:31

    使用nginx實現tomcat負載均衡

    Nginx+tomcat+memcached實現負載均衡及session(交叉存儲)
    發表于 08-28 08:52

    nginx實現的負載均衡

    nginx實現負載均衡
    發表于 05-04 13:42

    低消耗電流電壓調整器 XC6503

      特瑞仕半導體 (TOREX SEMICONDUCTOR LTD.) 開發了不需要輸出電容、最大輸出電流500mA 的低消耗電流電壓調整器、XC6503 系
    發表于 10-19 10:13 ?977次閱讀

    Apache與Nginx 簡單對比 以及Nginx 基本使用方法

    Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個目前運維必備的工具之一。
    的頭像 發表于 01-31 14:42 ?8309次閱讀
    Apache與<b class='flag-5'>Nginx</b> 簡單對比  以及<b class='flag-5'>Nginx</b> 基本使用方法

    低消耗降壓PFM同步整流 DC/DC轉換器

    XC9265系列產品可對應陶瓷電容,內置了0.5Ω(TYP.)P溝道驅動晶體管,及0.5Ω (TYP.)N溝道同步整流開關晶體管,超低消耗的降壓PFM同步整流DC/DC轉換器。采用了PFM控制而實現了超低消耗電流,最適用于重視在
    的頭像 發表于 08-22 12:46 ?7159次閱讀
    超<b class='flag-5'>低消耗</b>降壓PFM同步整流 DC/DC轉換器

    軟件開發工程師的進階之路

    輕量級,同樣起web 服務,比apache 占用更少的內存及資源 ,抗并發,nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的,在高并發下nginx 能保持低資源低消耗高性能
    的頭像 發表于 07-02 17:27 ?2389次閱讀

    XC6237:超低消耗電流,適用于物聯網設備和可穿戴設備

    低消耗電流 0.6μA LDO穩壓器
    的頭像 發表于 07-03 09:43 ?3140次閱讀

    分析Nginx為什么快的原因

    Nginx 以其高性能,穩定性,豐富的功能,簡單的配置和低資源消耗而聞名。本文從底層原理分析 Nginx 為什么這么快!
    的頭像 發表于 05-04 14:26 ?2645次閱讀
    分析<b class='flag-5'>Nginx</b>為什么快的原因

    低消耗電流CMOS運算放大器系列的應用特點及優勢

    此次開發的超低消耗電流類型,根據電路技術大幅度提升了傳統產品,實現業界最高級別的超低消耗電流0.35μA。當中的Ground Sense類型BU7411G/SG,實現了從1.6v開始的
    發表于 02-23 10:56 ?1944次閱讀
    <b class='flag-5'>低消耗</b>電流CMOS運算放大器系列的應用特點及優勢

    詳解Nginx高性能的HTTP和反向代理服務器

    Nginx 是一個高性能的 HTTP 和反向代理服務器,特點是占用內存少,并發能力強,事實上 Nginx 的并發能力確實在同類型的網頁服務器中表現較好。
    的頭像 發表于 03-16 11:23 ?2450次閱讀

    TOREX:了解的IoT器件(電池工作、低消耗)解決方案

    因此,在為傳感器、MCU、無線通信各功能供應超低消耗工作且高效電源的同時,電池控制、監視也變得重要。
    的頭像 發表于 05-22 00:38 ?636次閱讀
    TOREX:了解的IoT器件(電池工作、<b class='flag-5'>低消耗</b>)解決方案

    Nginx目錄結構有哪些

    什么是NginxNginx是一個 輕量級/高性能的反向代理Web服務器,他實現非常高效的反向代理、負載平衡,他可以處理2-3萬并發連接數,官方監測能支持5萬并發,現在中國使用
    的頭像 發表于 11-11 11:27 ?633次閱讀
    <b class='flag-5'>Nginx</b>目錄結構有哪些

    實現業界最低消耗電流~ 用于 GNSS的低功耗寬頻帶 LNA“NT1195”開始供樣品

    產品特點 1. 同時實現低消耗電流和低噪聲系數(NF)、高增益特性 通過我們多年培育的獨特技術,實現了1.9mA的超低消耗電流和0.7dB的低噪聲系數(NF)以及18dB的高增益特性。
    的頭像 發表于 04-23 13:43 ?417次閱讀
    ~<b class='flag-5'>實現</b>業界最<b class='flag-5'>低消耗</b>電流~ 用于 GNSS的低功耗寬頻帶 LNA“NT1195”開始供樣品
    主站蜘蛛池模板: 国产真实灌醉美女疯狂弄| 男人操女人的网站| 亚洲视频一区在线观看| 午夜色福利| 激情五月播播| 老湿成人影院| www.三级| 久久精品韩国三级| 狠狠色狠狠色狠狠五月ady| 乱色伦肉小说| 六月丁香婷婷网| 男女一级特黄a大片| 欧美一二三区在线| 巨大欧美黑人xxxxbbbb| 男女同床爽爽视频免费| 国产叼嘿免费视频网站| 狠狠色丁香久久婷婷综合丁香| 老司机狠狠k免费毛片| 伊人男人天堂| 国产精品特黄毛片| 欧美成人鲁丝片在线观看| 四虎影视在线影院在线观看| 97国产影院| 中文字幕第二区| 男女爱爱免费视频| 精品久久香蕉国产线看观看亚洲| 亚洲综合色婷婷| 丁香狠狠色婷婷久久综合| 黑人xxxx精品| 欧美乱论视频| 国产在线观看午夜不卡| 天天色天天拍| 天天爽视频| 一级无毛片| 亚洲视频精选| 国产免费久久精品99久久| 国产手机免费视频| hd性欧美| 精品亚洲欧美无人区乱码| 亚洲人成网站色7799在线观看| 色播.com|