《字节QUIC千万QPS应用实践_龙志.pdf》由会员分享,可在线阅读,更多相关《字节QUIC千万QPS应用实践_龙志.pdf(18页珍藏版)》请在三个皮匠报告上搜索。
1、Copyright 2023 Volcano Engine.All rights reserved.引擎QUIC应实践引擎边缘云-志CONTENTS录Copyright 2023 北京引擎科技有限公司 All rights reserved.QUIC协议简介01引擎QUIC-架构设计02引擎QUIC-性能优化03引擎QUIC-业务收益04引擎QUIC-未来展望05Copyright 2022 北京引擎科技有限公司 All rights reserved.QUIC协议简介-协议发展历程IPUDPUDPGoogle QUICHTTP1.1/HTTP2HTTP over gQUICIETF QUIC
2、HTTP3TLSTCP CryptoTLS 1.3 2012Google内部开发 2015提交IETF草案 2016IETF QUIC group成 2021RFC9000发布 2019落地 API业务 2018 项:启动开发 2021 落地 图业务QPS突破2000w 2022抖春节活动持IETF QUIC 2023落地 视频点播QPS突破3000w持MPQUIC引擎 QUICIETF QUIC 2020落地 件传输QPS突破300wCopyright 2022 北京引擎科技有限公司 All rights reserved.QUIC协议简介-协议优势0-RTT 建连接户态协议栈,快速迭代连接
3、迁移,缝络切换队头阻塞的多路复 QUIC协议优势安全加密双边加速Copyright 2022 北京引擎科技有限公司 All rights reserved.引擎QUIC-架构设计 端边云统QUIC协议栈,提升开发/运维效率端边云体 传输优化:分场景定制协议优化算法 CPU优化:丰富的优化策略,解决QUIC痛点 级特性:MPQUIC/FEC等级特性,提供极致体验性能 损升级:基于ebpf调度,实现nginx损升级 协议信息上报:实时监控异常,提供协议栈可观测能可靠TTNETToB客户内部客户ByteQUIC四层LB七层LB Nginx框架ngx-quic-moduleByteQUICsteame
4、bpf-QUIC连接调度sessionMPQUIC包调度模块WiFiCelludp socket传输优化CPU优化基础模块udp socket协议参数调优前向纠错FECQoE反馈优化通优化段数据收发优化API场景优化配置云端控制协议信息上报志信息上报Copyright 2022 北京引擎科技有限公司 All rights reserved.引擎QUIC-全链路协议加速端边云 户终 端回 源 点 回 源 点 QUIC封装动态请求/QUIC视频播放/QUIC视频上传/QUIC跨境QUIC回源TCP回源边缘节点源 站DCDN接点CDN接点云商接点QUIC协议卸载IDC引擎端边云-全链路QUIC协议加
5、速连接/QUIC跨境QUIC回源TCP回源IDC引擎Copyright 2022 北京引擎科技有限公司 All rights reserved.络性能-全链路分析系统数据模块QUIC客户端QUIC服务端Nginx播放器TraceId下载信息请求志netlogAccessLogQoS信息分析平台QoS信息记录业务质量信息,如卡顿/未起播等指标下载信息请求统计信息,如下载数据/耗时等请求志QUIC协议统计信息,如RTT/丢包率等通过TraceId串联端边云志系统,可记录每个请求的QoS信息/协议传输等细节信息。netlog详细的QUIC协议传输细节,可视化展示cwnd/rtt等指标的实时变化Cop
6、yright 2022 北京引擎科技有限公司 All rights reserved.络性能 分场景优化场景动态API请求视频上传视频点播 部分络环境存在udp block情况,导致quic请求失败 线络RTT抖动较,过多的虚假重传导致带宽利率低,影响上传耗时;新建连接经过多个RTT才能探测到稳定带宽,影响帧耗时;BBR周期性进probe_rtt导致卡顿上升问题策略 在新建连接时增加TCP/QUIC竞速机制,确保连接可,达到互补状态 增加虚假重传检测机制,在判定虚假重传之后适当调整丢包检测阈值(时间阈值&包阈值)保存上次连接的探测稳定带宽,满条件的新建连接可以快速恢复带宽;当app_limit
7、ed/RTT变化不时避免进probe_rtt,即使进cwnd根据BDP*系数进设置;Copyright 2022 北京引擎科技有限公司 All rights reserved.络性能-QUIC FEC TLP-FEC:在请求数据的尾部发送冗余数据,利空闲带宽发送冗余数据,适合动态请求API场景。A-FEC:适应FEC,通过实时统计段时间内的丢包率决定冗余度,达到带宽成本和恢复能的平衡。策略 XOR:算法简单,性能消耗低,恢复能弱 RS:性能消耗多,恢复能强编码算法 适于 RTT/丢包 络环境;在特定场景收益显著,例如TLP-FEC在API弱场景耗时正向显著;性能收益FEC:前向纠错,通过增加冗
8、余数据对丢失的数据包进恢复的信道编码算法,相动请求重传ARQ,可以在更短时间内恢复丢包,需等待重传。Copyright 2022 北京引擎科技有限公司 All rights reserved.络性能-基于QoE反馈优化播放器数据模块QUIC协议栈QoE 信 息请求解析模块模型匹配模块传输控制模块请求画像(HTTP Header)传输画像(QoE Frame)点播数据客户端服务端利QUIC双边加速特点,与业务深度结合,在客户端将业务QoE数据(请求优先级/码率/络类型)反馈给服务端进针对性优化。根据客户端反馈的码率信息,控制服务端速率,降低重传率的基础上优化卡顿率。码率在WiFi场景下,由于信道
9、扰导致RTT抖动较,可对WiFi户进针对性优化。络类型Copyright 2022 北京引擎科技有限公司 All rights reserved.络性能-MPQUICstreamsessionudp socketudp socketMPQUIC Connection 包调度模块 WiFi 收发包管理拥塞控制 ACK_MPRTT测量 丢包检测 保活/探测 Cell 收发包管理拥塞控制 ACK_MPRTT测量 丢包检测 保活/探测络耗时07500平均值P90P99单路QUICMPQUIC23.4%23.8%39.6%多路径QUIC:利移动设备WiFi和Cell双通道同时传输数
10、据,提升速度,增加弱对抗能,进步发挥QUIC双端户态协议优势,提升户体验。Copyright 2022 北京引擎科技有限公司 All rights reserved.CPU性能 QUIC vs HTTPS0030010KB512KBQUIC vs HTTPS CPU消耗百分典型场景10KB:动态请求API场景,1.3x HTTPS512KB:点播/投稿流媒体场景,3.5x HTTPS对分析10KB:body,nginx本身处理逻辑占头512KB:QUIC数据收发消耗远于nginx消耗Copyright 2022 北京引擎科技有限公司 All rights reserved
11、.CPU性能-流媒体场景CPU消耗占其他21%upstream处理6%收包recvmmsg6%ACK处理10%包处理12%QUIC组包20%UDP发包25%UDP发包QUIC组包包处理ACK处理收包recvmmsgupstream处理其他Copyright 2022 北京引擎科技有限公司 All rights reserved.CPU性能-优化法通的性能优化法,各场景均适,主要在编译&链接等阶段进优化,包括 PGO Bolt LTO等优化段通法010203流媒体场景动态请求场景数据传输场景CPU主要消耗在UDP收发包,通过GSO recvmmsg/AF_XDP/ZeroCopy降低收发包消耗
12、KeyLess:在握阶段将加解密操作卸载到远程KeyServer。QPACK优化:针对直变化的header,不加动态表。Copyright 2022 北京引擎科技有限公司 All rights reserved.引擎QUIC-业务收益API上传点播链API请求耗时030006000900012000平均值P95P99TCPQUIC9.6%13.3%34.9%毫秒上传时0275005500082500110000平均值P90TCPQUIC8.6%10.7%毫秒建连耗时00平均值P50P90TCPQUIC30%24%20%0.270.30.340.370.4卡顿率TCPQUI
13、C12%1.561.581.61.611.63未起播TCPQUIC5%毫秒%Copyright 2022 北京引擎科技有限公司 All rights reserved.引擎QUIC 未来展望络性能性能+成本标准-跟随标准-参与调优智能分析内部业务内外结合现状未来Copyright 2022 北京引擎科技有限公司 All rights reserved.欢迎关注引擎边缘云边缘云微信公众号微信扫扫边缘云书交流群书扫扫Copyright 2022 北京引擎科技有限公司 All rights Copyright 2023 Volcano Engine.All rights reserved.Thanks