自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

vivo統(tǒng)一接入網(wǎng)關(guān)VUA轉(zhuǎn)發(fā)性能優(yōu)化實(shí)踐

網(wǎng)絡(luò)
本文將探討如何通過使用Intel QuickAssist Technology(QAT)來優(yōu)化VUA的HTTPS轉(zhuǎn)發(fā)性能。我們將介紹如何使用QAT通過硬件加速來提高HTTPS轉(zhuǎn)發(fā)的性能,并探討QAT在不同應(yīng)用場景中的表現(xiàn)。最后,我們將討論如何根據(jù)實(shí)際情況進(jìn)行優(yōu)化,以獲得最佳轉(zhuǎn)發(fā)性能。

VLB 全稱 vivo load balance。vivo負(fù)載均衡作為vivo互聯(lián)網(wǎng)業(yè)務(wù)的IDC流量入口,承接了很多重要業(yè)務(wù)的公網(wǎng)流量。本文針對 VLB 的七層負(fù)載VUA HTTPS 性能優(yōu)化進(jìn)行探索,以獲取最佳轉(zhuǎn)發(fā)性能。

一、vivo VLB整體架構(gòu)

圖片

▲  圖1 vivo VLB整體架構(gòu)

VLB 整體架構(gòu)的核心包括:基于DPDK的四層負(fù)載VGW,基于Apache APISIX和NGINX擴(kuò)展功能的七層負(fù)載VUA,以及統(tǒng)一管控運(yùn)維平臺(tái)。

其主要特點(diǎn)為:

  • 高性能:具備千萬級(jí)并發(fā)和百萬級(jí)新建能力。
  • 高可用:通過 ECMP、健康檢查等,提供由負(fù)載本身至業(yè)務(wù)服務(wù)器多層次的高可用。
  • 可拓展:支持四層/七層負(fù)載集群、業(yè)務(wù)服務(wù)器的橫向彈性伸縮、灰度發(fā)布。
  • 四層負(fù)載能力:通過 BGP 向交換機(jī)宣告VIP;支持均衡算法如輪詢、加權(quán)輪詢、加權(quán)最小連接數(shù)、一致性哈希;FullNAT 轉(zhuǎn)發(fā)模式方便部署等。
  • 七層負(fù)載能力:支持基于域名和 URL 的轉(zhuǎn)發(fā)規(guī)則配置;支持均衡算法如輪詢、加權(quán)輪詢等。
  • SSL/TLS 能力:證書、私鑰、握手策略的管理配置;支持 SNI 配置;支持基于多種加速卡的 SSL 卸載硬件加速等。
  • 流量防控:提供一定的 Syn-Flood 防護(hù)能力;提供網(wǎng)絡(luò)流量控制手段如 QoS 流控、ACL 訪問控制等。
  • 管控平臺(tái):支持多種維度的網(wǎng)絡(luò)和業(yè)務(wù)指標(biāo)配置、監(jiān)控和告警。

本文針對 VLB 中七層負(fù)載VUA的 SSL/TLS 性能優(yōu)化兩種方法進(jìn)行概述性介紹:

  • 基于硬件技術(shù)的QAT_HW
  • 基于指令集優(yōu)化的QAT_SW

二、VUA七層負(fù)載均衡

2.1 VUA介紹

目前公司接入層最大的能力痛點(diǎn),就是動(dòng)態(tài)上游、動(dòng)態(tài)路由、動(dòng)態(tài)證書、流量灰度、黑白名單、動(dòng)態(tài)調(diào)度、日志查詢與追蹤等。為了支持公司業(yè)務(wù)的持續(xù)發(fā)展,特別是業(yè)務(wù)的全面容器化,亟需建設(shè)一個(gè)統(tǒng)一接入平臺(tái),融合目前線上的NGINX集群及Ingress NGINX,用于承載公司web端、移動(dòng)端、合作伙伴、內(nèi)部系統(tǒng)、IOT設(shè)備流量,對齊行業(yè)的接入層能力,保障業(yè)務(wù)的順利發(fā)展。

VUA定義:vivo Unified Access。

vivo 統(tǒng)一接入層,是基于APISIX-2.4的二次開發(fā)。

2.2 VUA架構(gòu)

圖片

▲ 圖2 APISIX 架構(gòu)(圖片來源:Github-apache/apisix

  • Apache APISIX:OpenResty 1.19.3.1 + Lua組成(組件本身是無狀態(tài)的)。
  • Manager-api:由 Go 語言開發(fā),用于配置的管理和變更。
  • APISIX-Ingress-Controller:基于K8S原生Controller機(jī)制開發(fā)完成,支持多副本Leader-Election熱備機(jī)制。主要監(jiān)聽K8s api server,用于pod信息上報(bào)到Manager-api。
  • Etcd:用于保存路由、upstream等配置信息。

圖片

▲ 圖3 VUA 架構(gòu)

圖片

三、QAT加速技術(shù)

Intel QuickAssist 技術(shù) OpenSSL引擎 (QAT_Engine) 支持硬件加速以及基于矢量化指令的優(yōu)化軟件。這一特性始于第三代Intel? Xeon?可擴(kuò)展處理器,為用戶提供了更多加速其工作負(fù)載的選項(xiàng)。

3.1 異步架構(gòu)

VUA 基于 NGINX 原生的異步處理框架上拓展出針對異步硬件引擎的異步事件處理機(jī)制,整體交互流程如下圖所示:

圖片

  • ASYNC_start_job:NGINX 調(diào)用 ssl lib 庫接口 SSL_do_handshake, 開啟一個(gè)異步任務(wù)。
  • RSA/ECDH 加解密操作。
  • QAT 引擎將加密消息發(fā)送給驅(qū)動(dòng),創(chuàng)建異步事件監(jiān)聽 fd,將 fd 綁定到異步任務(wù)的上下文中。
  • qat_pause_job: 調(diào)用該接口保存異步任務(wù)執(zhí)行的堆棧信息,任務(wù)暫時(shí)被掛起,等待硬件加解密操作完成。同時(shí)進(jìn)程堆棧切換到 NGINX IO 調(diào)用主流程,ssl 返回 WANT_ASYNC,NGINX開始處理其他等待時(shí)間。
  • NGINX IO處理框架獲取保存在異步任務(wù)上下文中的 asyncfd,并添加到 epoll 隊(duì)列中啟動(dòng)監(jiān)聽。
  • 加速卡處理任務(wù)完成,QAT 引擎調(diào)用 qat_wake_job 接口喚醒任務(wù)(也就是將 async fd 標(biāo)記為可讀)。QAT 為 NGINX 提供了多種輪詢方式去輪詢加速卡響應(yīng)隊(duì)列,目前 VUA 采用的是啟發(fā)式輪詢的方式,具體參數(shù)可以在配置文件中定義。
  • NGINX 處理異步事件重新調(diào)用異步任務(wù)框架的 ASYNC_start_job 接口,這時(shí)候程序切換上下文,堆棧執(zhí)行后跳回之前 pause job 的地方。

3.2 QAT組件架構(gòu)概覽

圖片

  • Application
    應(yīng)用層主要包含兩塊內(nèi)容:
    (1)QAT 異步框架的 patch,該 patch 提供對異步模式的支持;
    (2)QAT 引擎,engine 是 openssl 本身支持的一種機(jī)制,用以抽象各種加密算法的實(shí)現(xiàn)方式,intel 提供了 QAT 引擎的開源代碼用以專門支持 QAT 加速。
  • SAL(service access layer)
    服務(wù)接入層,給上層 Application 提供加速卡接入服務(wù),目前 QAT 主要提供 crypto 和 compression 兩種服務(wù),每一種服務(wù)都相互獨(dú)立,接入層封裝了一系列實(shí)用的接口,包括創(chuàng)建實(shí)例,初始化消息隊(duì)列、發(fā)送\接受請求等。
  • ADF(acceleration driver framework)
    加速卡驅(qū)動(dòng)框架,提供 SAL 需要的驅(qū)動(dòng)支持,如上圖,包括 intel_qat.ko、8950pci 驅(qū)動(dòng)、usdm 內(nèi)存管理驅(qū)動(dòng)等。

3.3 QAT_HW和QAT_SW

QAT_HW基于QAT硬件加速卡,通過Openssl引擎使用qatengine.so庫中鏈接的QAT驅(qū)動(dòng)程序。

QAT_SW是基于QAT軟件加速,通過Openssl引擎使用qatengine.so庫中鏈接的crypto_mb和ipsec_mb庫?;趇ntel AVX-512 整數(shù)乘加 (IFMA) 操作緩沖區(qū)庫,當(dāng)用戶構(gòu)建指令支持qat_sw時(shí),通過批處理隊(duì)列中維護(hù)的多個(gè)請求執(zhí)行操作,并使用 OpenSSL 異步基礎(chǔ)架構(gòu)將批處理請求最多提交到8個(gè) Crypto Multi-buffer API,后者使用AVX512 矢量指令并行處理它們。主要面向非對稱 PKE 和 AES-GCM 的英特爾? QAT 軟件加速,RSA支持密鑰大小 2048、3072、4096,AES128-GCM、AES192-GCM 和 AES256-GCM。

如果平臺(tái)同時(shí)支持 QAT_HW 和 QAT_SW,則默認(rèn)是使用 QAT 硬件加速非對稱算法和對稱鏈?zhǔn)矫艽a,使用 QAT 軟件加速對稱 GCM 密碼。如果平臺(tái)沒有 QAT 硬件支持,那么它將使用 QAT_SW 加速來實(shí)現(xiàn) qatengine 中支持的非對稱算法。

下圖說明了 QAT_Engine 的高級(jí)軟件架構(gòu)。NGINX 和 HAProxy 等應(yīng)用程序是與 OpenSSL接口的常見應(yīng)用程序。OpenSSL是一個(gè)用于 TLS/SSL 協(xié)議的工具包,從 1.1.0 版本開始,它開發(fā)了一個(gè)模塊化系統(tǒng)來插入特定于設(shè)備的引擎。如上所述,QAT_Engine 中有兩個(gè)獨(dú)立的內(nèi)部實(shí)體,通過它們可以執(zhí)行加速。

圖片

▲(圖片來源:Github-intel/QAT_Engine

四、優(yōu)化方案性能提升對比

4.1 QAT_HW

本方案采用intel 8970型號(hào)加速卡進(jìn)行測試,采用RSA證書進(jìn)行HTTPS加解密。

(1)測試方法

執(zhí)行機(jī)部署適配 QAT 引擎后的VUA,發(fā)包測試機(jī)進(jìn)行壓測灌包,在 CPU 負(fù)載達(dá)到 100%后比較得出VUA在進(jìn)行 QAT 優(yōu)化后的新建 QPS對比。

(2)測試場景

圖片

(3)本地測試數(shù)據(jù)對比

使用QAT加速卡性能對比

圖片

QAT卡優(yōu)化方案,通過 VUA進(jìn)行 HTTPS 打流業(yè)務(wù)實(shí)測,與采用OpenSSL 軟件加解密場景做對比:

  • 使用QAT加速卡,同worker下,RSA 平均QPS提升1.27倍。
  • 隨著進(jìn)程數(shù)的增加,QAT加速卡達(dá)到瓶頸,趨于穩(wěn)定,在56 worker下,最高可達(dá)4.4w qps。

此優(yōu)化方案所帶來的性能提升主要依賴于:

  • QAT采用用戶態(tài)驅(qū)動(dòng)的方式,實(shí)現(xiàn)了內(nèi)核態(tài)到用戶態(tài)內(nèi)存零拷貝。
  • VUA采用異步模式調(diào)用 OpenSSL API,代替?zhèn)鹘y(tǒng)的同步模式調(diào)用。
  • QAT驅(qū)動(dòng)程序支持多加速卡同時(shí)進(jìn)行卸載加速。

4.2 QAT_SW

本方案采用icelake 6330型號(hào)(支持AVX512指令集)進(jìn)行測試,采用RSA證書進(jìn)行HTTPS加解密。

(1)測試方法

執(zhí)行機(jī)部署適配指令集優(yōu)化的VUA,發(fā)包測試機(jī)進(jìn)行壓測灌包,在 CPU 負(fù)載達(dá)到 100%后比較得出VUA在進(jìn)行指令集優(yōu)化后的新建 QPS對比。

(2)測試組網(wǎng)

圖片

(3)本地測試數(shù)據(jù)對比

使用指令集優(yōu)化性能對比

圖片

指令集優(yōu)化方案,通過 VUA進(jìn)行 HTTPS 打流業(yè)務(wù)實(shí)測,與采用openssl軟件加解密場景做對比:

  • 使用指令集優(yōu)化,同worker下,RSA 平均QPS提升1倍。
  • 隨著進(jìn)程數(shù)的增加,指令集優(yōu)化加速會(huì)成線性增長,在56 worker下,最高可達(dá)5.1w qps。

 此優(yōu)化方案所帶來的性能提升主要依賴于:

  • 使用 AVX512 指令優(yōu)化加解密

五、總結(jié)與思考

截止目前,vivo VLB在軟硬件加速領(lǐng)域,已經(jīng)同時(shí)支持exar加速卡與intel QAT 硬件和軟件指令集加速等方案,成功實(shí)現(xiàn)核心網(wǎng)絡(luò)組件自主可控,為構(gòu)建高性能的網(wǎng)關(guān)架構(gòu)賦能行業(yè)打下堅(jiān)實(shí)的基礎(chǔ)。

未來 vivo VLB 將持續(xù)構(gòu)建接入層網(wǎng)關(guān)能力體系。

  • 安全與合規(guī)
    作為vivo統(tǒng)一流量接入入口,VLB 將持續(xù)構(gòu)建安全可靠的通信安全基礎(chǔ)設(shè)施,打造全方位的安全防護(hù)體系。
  • 多協(xié)議支持
    VLB 在高效接入能力建設(shè)方面將持續(xù)投入,通過引入 QUIC 協(xié)議,將提升用戶在弱網(wǎng)場景下的用戶體驗(yàn)。
    通過 MQTT 協(xié)議可以通過非常小的接入成本實(shí)現(xiàn)新設(shè)備和協(xié)議接入,積極擁抱萬物互聯(lián)。
責(zé)任編輯:龐桂玉 來源: vivo互聯(lián)網(wǎng)技術(shù)
相關(guān)推薦

2009-11-05 09:26:52

接入網(wǎng)性能

2009-11-04 14:45:18

接入網(wǎng)優(yōu)化

2009-12-29 13:52:49

寬帶接入網(wǎng)

2009-12-28 10:23:42

FTTx接入網(wǎng)

2009-10-28 17:31:55

綜合接入網(wǎng)

2009-10-28 17:39:58

光接入網(wǎng)解決方案

2009-11-03 14:46:44

無線接入網(wǎng)

2012-07-21 09:07:12

云計(jì)算網(wǎng)神安全接入網(wǎng)關(guān)

2009-12-28 10:11:37

接入網(wǎng)技術(shù)

2009-10-26 15:20:23

寬帶接入網(wǎng)

2009-10-28 09:47:19

遠(yuǎn)程接入網(wǎng)

2009-11-05 13:25:19

接入網(wǎng)方式

2009-10-26 14:00:03

光纖接入網(wǎng)

2009-10-26 13:42:26

光纖接入網(wǎng)

2009-11-06 11:20:01

家庭接入網(wǎng)

2009-10-27 08:41:41

光纖接入網(wǎng)

2009-10-26 16:38:16

接入網(wǎng)方案

2009-11-04 17:26:05

接入網(wǎng)方式

2009-10-23 14:14:07

網(wǎng)吧接入網(wǎng)

2009-10-23 09:54:07

光纖接入網(wǎng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)