您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[ArchSummit深圳2023|全球架构师峰会]:字节QUIC千万QPS应用实践_龙志 - 发现报告
当前位置:首页/行业研究/报告详情/

字节QUIC千万QPS应用实践_龙志

AI智能总结
查看更多
字节QUIC千万QPS应用实践_龙志

⽕⼭引擎QUIC应⽤实践 ⽕⼭引擎边缘云-⻰志 Copyright©2023VolcanoEngine.Allrightsreserved.www.volcengine.com · CONTENTS ⽬录 01 QUIC协议简介 02 ⽕⼭引擎QUIC-架构设计 03 ⽕⼭引擎QUIC-性能优化 04 ⽕⼭引擎QUIC-业务收益 05 ⽕⼭引擎QUIC-未来展望 Copyright©2023北京⽕⼭引擎科技有限公司Allrightsreserved. QUIC协议简介-协议发展历程 2012 Google内部开发 2015 提交IETF草案 2016 IETFQUICgroup成⽴ 2021 RFC9000发布 UDP IETFQUIC TLS1.3 HTTP3 TLS HTTP1.1/HTTP2 IETFQUIC IP UDP GoogleQUIC Crypto HTTPovergQUIC TCP ⽕⼭引擎 QUIC 2018 ⽴项:启动开发 2019 落地API业务 2020 落地⽂件传输 QPS突破300w 2021 落地图⽚业务 QPS突破2000w 2022 抖⾳春节活动 ⽀持IETFQUIC 2023 落地视频点播 QPS突破3000w ⽀持MPQUIC Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. QUIC协议简介-协议优势 0-RTT建⽴连接 连接迁移,⽆缝⽹络切换 双边加速 QUIC 协议优势 安全加密 ⽤户态协议栈,快速迭代 ⽆队头阻塞的多路复⽤ Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. ⽕⼭引擎QUIC-架构设计 ToB客户内部客户 TTNET ByteQUIC 四层LB 七层LBNginx框架 ngx-quic-moduleByteQUIC steam session MPQUIC 包调度模块 WiFiCell 传输优化 协议参数调优前向纠错FECQoE反馈优化 CPU优化通⽤优化⼿段 数据收发优化 API场景优化基础模块 端边云⼀体 •端边云统⼀QUIC协议栈,提升开发/运维效率 ⾼可靠 •⽆损升级:基于ebpf调度,实现nginx⽆损升级 •协议信息上报:实时监控异常,提供协议栈可观测能 ⼒ ⾼性能 •传输优化:分场景定制协议优化算法 ebpf-QUIC连接调度 udpsocket udpsocket •CPU优化:丰富的优化策略,解决QUIC痛点 配置云端控制协议信息上报⽇志信息上报 •⾼级特性:MPQUIC/FEC等⾼级特性,提供极致体验 Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. ⽕⼭引擎QUIC-全链路协议加速 端 边 端边云-全链路QUIC协议加速 云 边缘节点 源站 QUIC协议卸载 ⽕⼭引擎 ⽤户终端 回源点 TCP回源 动态请求/QUIC DCDN 接⼊点 TCP回源 IDC 视频播放/QUIC 视频上传/QUIC CDN 接⼊点 跨境QUIC回源 ⾮⽕⼭引擎 ⻓连接/QUIC 云⼚商接⼊点 回源点 QUIC封装 跨境QUIC回源 IDC Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. ⽹络性能-全链路分析系统 通过TraceId串联端边云⽇志系统,可记录每个请求的QoS信息/协议传输等细节信息。 TraceId QoS信息 客户端 记录业务质量信息,如卡顿/未起播等指标 播放器 数据模块QUIC QUIC 服务端 Nginx 下载信息 请求统计信息,如下载数据⼤⼩/耗时等 QoS信息 下载信息请求⽇志netlog 分析平台 AccessLog 请求⽇志 QUIC协议统计信息,如RTT/丢包率等 netlog 详细的QUIC协议传输细节,可视化展示cwnd/rtt等指标的实时变化 Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. ⽹络性能–分场景优化 场景 问题 策略 动态API请求 •部分⽹络环境存在udpblock情况,导致quic请求失败 •在新建连接时增加TCP/QUIC竞速机制,确保连接可⽤,达到互补状态 视频上传 •⽆线⽹络RTT抖动较⼤,过多的虚假重传导致带宽利⽤率低,影响上传耗时; •增加虚假重传检测机制,在判定虚假重传之后适当调整丢包检测阈值(时间阈值&包阈值) 视频点播 •新建连接经过多个RTT才能探测到稳定带宽,影响⾸帧耗时; •BBR周期性进⼊probe_rtt导致卡顿上升 •保存上次连接的探测稳定带宽,满⾜ 条件的新建连接可以快速恢复带宽; •当app_limited/RTT变化不⼤时避免进 ⼊probe_rtt,即使进⼊cwnd根据BDP*系数进⾏设置; Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. 策略 •TLP-FEC:在请求数据的尾部发送冗余数据,利⽤空闲带宽 发送冗余数据,适合动态请求API场景。 •A-FEC:⾃适应FEC,通过实时统计⼀段时间内的丢包率决定冗余度,达到带宽成本和恢复能⼒的平衡。 ⽹络性能-QUICFEC FEC:前向纠错,通过增加冗余数据对丢失的数据包进⾏恢复的信道编码算法,相⽐⾃动请求重传 编码算法 •XOR:算法简单,性能消耗低,恢复能⼒弱 •RS:性能消耗多,恢复能⼒强 ARQ,可以在更短时间内恢复丢包,⽆需等待重传。 性能收益 •适⽤于⻓RTT/⾼丢包⽹络环境; •在特定场景收益显著,例如TLP-FEC在API弱⽹场景耗时正向显著; Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. ⽹络性能-基于QoE反馈优化 利⽤QUIC双边加速特点,与业务深度结合,在客户端将业务QoE数据(请求优先级/码率/⽹络类型)反馈给服务端进⾏针对性优化。 QoE信息 播放器数据模块 点播数据 请求画像(HTTPHeader) 传输控制模块模型匹配模块 码率 根据客户端反馈的码率信息,控制服务端速率,降低重传率的基础上优化卡顿率。 ⽹络类型 QUIC协议栈 客户端 传输画像(QoEFrame) 请求解析模块 服务端 在WiFi场景下,由于信道⼲扰导致RTT抖动较⼤,可对WiFi⽤户进⾏针对性优化。 Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. ⽹络性能-MPQUIC 多路径QUIC:利⽤移动设备WiFi和Cell双通道同时传输数据,提升速度,增加弱⽹对抗能⼒,进⼀步发挥 QUIC双端⽤户态协议优势,提升⽤户体验。 stream session MPQUICConnection WiFi 收发包管理拥塞控制 ACK_MP Cell 收发包管理 ACK_MP 丢包检测 RTT测量 保活/探测 丢包检测 拥塞控制 RTT测量 保活/探测 udpsocket udpsocket 包调度模块 3000 ⽹络耗时 39.6% 23.8% 23.4% 2250 1500 750 0 平均值P90P99 单路QUICMPQUIC Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. CPU性能–QUICvsHTTPS 500 400 300 200 100 0 QUICvsHTTPSCPU消耗百分⽐ 10KB512KB 典型场景 10KB:动态请求API场景,1.3xHTTPS 512KB:点播/投稿流媒体场景,3.5xHTTPS 对⽐分析 10KB:body⼩,nginx本身处理逻辑占⼤头512KB:QUIC数据收发消耗远⼤于nginx消耗 Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. CPU性能-流媒体场景 CPU消耗占⽐ 其他 21% UDP发包 25% upstream处理 6% 收包recvmmsg 6% QUIC组包 20% 包处理 12% UDP发包 upstream处理 ACK处理 10% QUIC组包其他 包处理 ACK处理 收包recvmmsg Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. CPU性能-优化⽅法 010203 通⽤⽅法 通⽤的性能优化⽅法,各场景均适⽤,主要在编译&链接等阶段进⾏优化,包括PGOBoltLTO等优化⼿段 流媒体场景 数据传输场景CPU主要消耗在UDP收发包,通过GSOrecvmmsg/AF_XDP/ZeroCopy降低收发包消耗 动态请求场景 •KeyLess:在握⼿阶段将加解密操作卸载到远程KeyServer。 •QPACK优化:针对⼀直变化的header,不加 ⼊动态表。 Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. ⽕⼭引擎QUIC-业务收益 毫秒 12000 9000 6000 3000 API请求耗时 毫秒 110000 82500 55000 27500 P95 P99 QUIC API 上传 点播 ⻓链 0 上传时⻓ 8.6 % 10. 7% 34.9 % 13.3 9.6% % 0 平均值 TCP %% 平均值P90 TCPQUIC 建连耗时 5% 0.4 0.37 0.34 0.3 0.27 12 % 卡顿率 1.63 1.61 1.6 1.58 1.56 毫秒 30 % 24 % 20 % 500 375 250 125 TCPQUIC 未TC起P播 QUIC 0 平均值P50P90 TCPQUIC Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. ⽕⼭引擎QUIC–未来展望 现状 ⽹络性能 内部业务 ⼈⼯调优 标准-跟随 未来 性能+成本 内外结合 智能分析 标准-参与 Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. 欢迎关注⽕⼭引擎边缘云 边缘云微信公众号 微信扫⼀扫 边缘云⻜书交流群 ⻜书扫⼀扫 Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. Thanks Copyright©2022北京⽕⼭引擎科技有限公司Allrightsreserved. Copyright©2023VolcanoEngine.Allrightsreserved.www.volcengine.com

你可能感兴趣

hot

QUIC协议在分布式系统架构中的实践_李龙彦

信息技术
ArchSummit深圳2023|全球架构师峰会2023-08-02
hot

计算密集型应用以ServiceMesh为支点解决分布式问题的探索与实践_王志龙

信息技术
ArchSummit深圳2023|全球架构师峰会2023-08-02
hot

蚂蚁-刘志伟-检索增强在大模型落地中的实践应用

信息技术
2023第十二届全球TOP100软件案例研究峰会2024-08-21
hot

阿里-徐志远-基于Multi-Agent框架的金融大模型应用实践

金融
2023第十二届全球TOP100软件案例研究峰会2024-08-21