色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

io_uring 優化 nginx,基于通用應用 nginx 的實戰

Linux閱碼場 ? 來源:Linuxer ? 作者:Linuxer ? 2020-10-10 16:19 ? 次閱讀

引言

io_uring是Linux內核在v5.1引入的一套異步IO接口,隨著其迅速發展,現在的io_uring已經遠遠超過了純IO的范疇。從Linux v5.3版本開始,io_uring陸續添加了網絡編程相關的API,對用戶提供sendmsg、recvmsg、accept、connect等接口的異步支持,將io_uring的生態范圍擴大到了網絡領域。

另外從Linux v5.7開始,io_uring對這些異步接口提供FAST POLL機制,用戶無需再使用像select、event poll等多路復用機制來監聽文件句柄,只要把讀寫請求直接丟到io_uring的submit queue中并提交,當文件句柄不可讀寫時,內核會主動添加poll handler,當文件句柄可讀寫時主動調用poll handler再次下發讀寫請求,從而減少系統調用次數提高性能。

上一篇我們初探了 io_uring 用于網絡的編程模型以及 echo server benchmark 下的性能表現,這篇文章我們將基于通用應用 nginx 實戰。

Nginx io_uring 代碼優化

Nginx是一款輕量級的Web服務器、反向代理服務器,由于它的內存占用少,啟動極快,高并發能力強,在互聯網項目中廣泛應用。

從架構上看,Nginx由一個master和多個worker進程組成,多個worker之間不需要加鎖,獨立處理與client的連接和網絡請求。worker是一個單線程大循環,這與上一篇“你認為 io_uring 只適用于存儲 IO?大錯特錯!”文章中描述的 echo server 模型基本一致。

基于event poll的編程模型

event poll是Nginx在Linux下的默認事件模型。

event poll事件模型把listen fd以及新建連接的sock fd都注冊進event poll中,當這些fd上有數據可讀時,等待在epoll_wait()的worker進程會被喚醒,調用相應的回調函數進行處理,這里的recv、writev請求都為同步請求。

基于io_uring的編程模型

前面提到,io_uring的FAST POLL機制允許數據在未ready的情況下就直接下發,不需要再把普通連接的fd注冊進event poll。另外這里的讀寫請求通過io_uring異步下發,處理流程大致如下:

事實上,accept()也可以采取FAFST POLL機制,無需等待listen_fd數據可讀就直接下發,以減少系統調用次數。但在調試過程中發現這樣accept()失敗概率大大增加,而每次失敗的accept()都會帶來一次無效的sock內存申請和釋放,這個開銷較大,因此依然采用類似event poll的方式來偵聽listen fd。后續針對這塊可以做一些優化。

測試結果

測試環境

測試機器
CPU: Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz 64邏輯核
server cmdline添加:mitigation=on

nginx配置

user root;http { access_log off; server { access_log off; // 關閉access log,否則會寫日志,影響測試 location / { return 200; // 不讀本地文件,直接返回200 } }}

benchmark
使用輕量級HTTP性能測試工具wrk進行壓測。

測試命令

長連接 wrk -c $connection -t $thread -d 120 $url短連接wrk-c$connection-t$thread-H"Connection:Close"-d120$url

測試結果

長連接

? connection=1000,thread=200, 測試server上不同worker數目性能。

worker數目在8以下時,QPS有20%左右的提升。隨著worker數目增大,CPU不成為瓶頸,收益逐漸降低。

server單worker,測試client端不同連接數性能(thread取默認數2)。

可以看到單worker情況下,500個連接以上,QPS有20%以上的提升。從系統調用數目上看,io uring的系統調用數基本上在event poll的1/10以內。

短連接

? connection=1000,thread=200, 測試server上不同worker數目性能。

短連接場景,io uring相對于event poll非但沒有提升,甚至在某些場景下有5%~10%的性能下降。究其原因,除了io uring框架本身帶來的開銷以外,還可能跟io uring編程模式下請求批量下發而帶來的延遲有關。

總結及下一步工作

從筆者目前的測試來看,io_uring在網絡編程方面的優化更適合長連接場景,在長連接場景下最高有20%多的提升。短連接場景還有待優化,主要考慮以下兩方面:
? io uring本身框架開銷的優化,當然這個優化對長連接同樣適用。
? 針對短連接的優化,如針對accept()請求,先檢查是否有數據可讀,避免無效內存申請釋放;多個accept()一起下發等。

nginx 和 echo server 等優化實踐相關內容(包含源代碼),我們都已經在 OpenAnolis 社區高性能存儲 SIG 開源(openanolis.org)。也歡迎大家積極參與討論和貢獻,一起探索 io_uring 的高性能之路。

責任編輯:xj

原文標題:面對疾風吧!io_uring 優化 nginx 實戰演練

文章出處:【微信公眾號:Linuxer】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11378

    瀏覽量

    211342
  • IO接口
    +關注

    關注

    0

    文章

    31

    瀏覽量

    13545
  • nginx
    +關注

    關注

    0

    文章

    158

    瀏覽量

    12305

原文標題:面對疾風吧!io_uring 優化 nginx 實戰演練

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Nginx服務優化教程

    隱藏Nginx版本號,避免安全漏洞泄漏:修改配置文件法;修改源碼法
    的頭像 發表于 03-12 15:57 ?175次閱讀
    <b class='flag-5'>Nginx</b>服務<b class='flag-5'>優化</b>教程

    Nginx常見面試題總結

    Nginx是一個 輕量級/高性能的反向代理Web服務器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 協議。
    的頭像 發表于 03-03 09:36 ?154次閱讀
    <b class='flag-5'>Nginx</b>常見面試題總結

    如何通過優化Nginx配置來提高網絡環境的安全性

    簡介:?在當今數字化時代,網絡安全至關重要。Nginx作為流行的Web服務器,不僅提供高性能,還具備強大的安全保障功能。然而,默認配置可能無法抵御所有安全威脅,因此對Nginx進行安全加固尤為重要
    的頭像 發表于 02-14 17:49 ?1081次閱讀

    華為 FlexusX 與 Docker+Nginx 的高效整合之路

    前言 華為 FlexusX 攜手 Docker+Nginx,高效整合,云端性能再升級!FlexusX 服務器,依托華為強大的技術實力,為 Docker 容器與 Nginx 服務器提供了完美的運行環境
    的頭像 發表于 01-23 17:55 ?145次閱讀
    華為 FlexusX 與 Docker+<b class='flag-5'>Nginx</b> 的高效整合之路

    nginx+lua+redis實現灰度發布

    作者:馬仁喜 前言: 授人以魚不如授人以漁 .先學會用,在學原理,在學創造,可能一輩子用不到這種能力,但是不能不具備這種能力。這篇文章主要是沉淀使用nginx+lua+redis實現灰度,當我們具備
    的頭像 發表于 12-17 10:01 ?182次閱讀

    Nginx代理轉發實戰:零基礎掌握服務器流量分發技巧

    Nginx 是最常用的反向代理工具之一,一個指令 proxy_pass搞定反向代理,對于接口代理、負載均衡很是實用,但 proxy_pass指令后面的參數很有講究,通常一個“/”都可能引發一個血案
    的頭像 發表于 12-09 12:28 ?1392次閱讀

    Nginx日常運維方法Linux版

    1,安裝? 下載RPM:wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx
    的頭像 發表于 12-06 16:38 ?278次閱讀
    <b class='flag-5'>Nginx</b>日常運維方法Linux版

    詳解nginx中的正則表達式

    前言,我這里驗證的nginx-v1.23.2單機環境下的nginx中的正則表達式、location路徑匹配規則和優先級。
    的頭像 發表于 12-03 09:59 ?460次閱讀
    詳解<b class='flag-5'>nginx</b>中的正則表達式

    確保網站無縫運行:Keepalived高可用與Nginx集成實戰

    目錄 keepalived高可用(nginx) keepalived簡介 keepalived的重要功能 keepalived高可用架構圖 keepalived工作原理描述 keepalived實現
    的頭像 發表于 11-27 09:08 ?798次閱讀
    確保網站無縫運行:Keepalived高可用與<b class='flag-5'>Nginx</b>集成<b class='flag-5'>實戰</b>

    nginx隱藏版本號與WEB服務器信息

    nginx不僅可以隱藏版本信息,還支持自定義web服務器信息 先看看最終的隱藏結果吧 具體怎么實現呢,其實也很簡單,請往下看 1 官網下載最新穩定版 wget http://nginx
    的頭像 發表于 11-22 10:25 ?309次閱讀
    <b class='flag-5'>nginx</b>隱藏版本號與WEB服務器信息

    nginx負載均衡配置介紹

    目錄 nginx負載均衡 nginx負載均衡介紹 反向代理與負載均衡 nginx負載均衡配置 Keepalived高可用nginx負載均衡器 修改Web服務器的默認主頁 開啟
    的頭像 發表于 11-10 13:39 ?388次閱讀
    <b class='flag-5'>nginx</b>負載均衡配置介紹

    nginx中的正則表達式和location路徑匹配指南

    前言,我這里驗證的nginx-v1.23.2單機環境下的nginx中的正則表達式、location路徑匹配規則和優先級。
    的頭像 發表于 09-29 16:02 ?1206次閱讀
    <b class='flag-5'>nginx</b>中的正則表達式和location路徑匹配指南

    Jtti:美國VPS開啟nginx狀態監控,查看web服務器的并發連接數

    Nginx的ngx_http_stub_status_module提供能夠獲取Nginx自上次啟動以來的工作狀態的功能。如果需要啟用此功能的話,需要在編譯的過程中添加如下參數
    的頭像 發表于 08-26 15:42 ?413次閱讀

    nginx重啟命令linux步驟是什么?

      1、驗證nginx配置文件是否正確   方法一:進入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示nginx.conf syntax is ok
    發表于 07-11 17:13

    nginx重啟命令linux步驟是什么?

      1、驗證nginx配置文件是否正確   方法一:進入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示nginx.conf syntax is ok
    發表于 07-10 16:40
    主站蜘蛛池模板: 久久视频精品3线视频在线观看 | 大稥焦伊人一本dao 大香伊人中文字幕精品 | 动漫美女被h动态图 | AV精品爆乳纯肉H漫网站 | 亚洲精品国产专区91在线 | 后入式狂顶免费视频 | 日韩欧美中文字幕在线二视频 | 国产又粗又猛又爽又黄的免费视频 | 黑吊大战白女出浆 | 综合色就爱涩涩涩综合婷婷 | 亚洲精品123区 | 亚洲九九精品 | 免费又黄又硬又爽大片 | hd性欧美俱乐部中文 | 国产成人免费观看 | 国产精品爽爽久久久久久无码 | 最新亚洲人成网站在线影院 | 欧美精品成人a多人在线观看 | a视频在线观看免费 | 久久理论片 | 精品国产精品人妻久久无码五月天 | 欧美大香线蕉线伊人久久 | 快播在线电影网站 | japansemature护士| 国产精品熟女人妻 | 暖暖免费观看日本在线视频 | 亚洲香蕉网久久综合影院 | 爱爱好爽好大好紧视频 | 亚洲国产欧美日本大妈 | 亚洲人成电影网站色2017 | 男女后进式猛烈xx00动态图片 | 国产成人啪精视频精东传媒网站 | 高H高肉强J短篇校园 | 美女强奷到抽搐在线播放 | 边吃胸边膜下床震免费版视频 | 欧美伦理片第7页 | 4k岛国精品午夜高清在线观看 | 亚洲欧美精品无码一区二在线 | 做你的爱人BD日本 | 国产欧美一区二区精品久久久 | 国产CHINESE HD精品 |