快手自研kQUIC高性能服務器,集羣QPS破千萬

近日,快手自研高性能服務器kQUIC已全面上線,集羣峯值QPS突破千萬。kQUIC是快手結合自身業務特點,自研打造的支持QUIC/HTTP/HTTPS多協議同層接入的高性能服務器,在短視頻場景下針對行業痛點做了系列優化,未來InfoQ記者還將就此話題進行深入採訪,敬請關注。

據瞭解,kQUIC自19年上半年開始研發,年底灰度上線,20年6月峯值QPS突破千萬,歷時一年有餘。kQUIC針對性地對數據壓縮、網絡傳輸擁塞控制等進行了優化,傳輸耗時平均降低10%以上,服務端處理性能提升了50%。

QUIC(Quick UDP Internet Connections)協議是谷歌制定發佈的基於UDP的新一代互聯網傳輸協定,下一代HTTP/3協議標準也是從QUIC演進而來,國內外衆多互聯網企業均有研究和使用實踐。

QUIC相比HTTP(s) 有幾大優勢:

  • 首先,QUIC在應用層實現了基於UDP的可靠傳輸,能夠在使用多路複用機制的同時避免TCP的隊首阻塞問題;
  • 其次,QUIC改進了握手機制,大部分場景下可以0-RTT建立安全鏈接進行數據加密發送;
  • QUIC還同時設計了連接遷移的新特性,可以保證在用戶的網絡地址發生變化時,比如WIFI和4G切換,業務請求依然能夠被繼續處理,不需要重新發起請求;
  • 此外,QUIC的傳輸控制機制是在應用層處理的,相比TCP在內核中處理的方式更加靈活、更方便貼近業務場景做自定義優化,比如可以應用更先進的算法進行雙端加速。

目前業界已有一些QUIC協議的通用開源解決方案,但對快手所處行業獨特的短視頻+直播業務的特性而言,都存在一定的短板。爲此,快手選擇了自研,對QUIC協議棧進行大量適配改造以滿足業務訴求和用戶體驗。

自研內核、算法、網絡庫和服務端架構

下圖爲服務端方案整體架構,從Nginx內核集成QUIC協議棧,實現多協議同層接入,到Linux內核優化UDP報文管理,實現性能提升。

自研升級Nginx內核,支持多協議接入:目前,業界普遍大規模使用了Nginx作爲7層的接入服務器,但Nginx尚不支持QUIC協議。快手自研升級Nginx內核,在Nginx內核裏嵌入了QUIC協議棧,完成了Nginx和QUIC的有機融合,不管是HTTP/HTTPS還是QUIC,都能使用Nginx原生的所有處理邏輯,保留全部業務邏輯處理功能的同時可以靈活升級Nginx和Chromium版本,並進行了一系列的針對性優化,性能提升了50%。

無損的配置熱更新:Nginx的配置熱更新機制不能支持UDP業務的配置無損更新,爲此調研了改造應用層和改造內核兩種實現路徑,最終實現了基於內核session映射表的配置無損熱更新機制。相比在應用層改造Nginx的方案而言,本方案既不需要改造Nginx的UDP收發機制,又充分保留了在UDP socket上使用sendmmsg和gso的能力,可以減少發送UDP報文的開銷,提升性能。

自研全新網絡擁塞控制算法:網絡擁塞控制算法直接影響着網絡傳輸的性能,與用戶請求的成功率、響應時間等有非常大的關係。業界默認採用的cubic、bbr等算法,在大規模用戶與複雜的網絡環境面前,存在很多問題。快手設計了一套全新的擁塞控制算法IA2C,替換默認算法,在弱網環境下,提升明顯。

統一的客戶端網絡庫:對QUIC協議的支持是需要客戶端和服務端統一設計的,很多優化也需要雙端配合,快手客戶端網絡庫的設計也採用了新的辦法。區別於一般APP使用開源網絡庫OKHTTP和AFNetwork,無法支持跨平臺的做法,快手網絡庫在設計之初就把跨平臺作爲一個重要的目標,完全採用C++編寫,不僅爲快手主站的雙端提供統一的網絡優化解決方案,還通過中臺輸出統一了各個新業務的網絡接入層,爲快手系產品持續全面的網絡優化提供了有力保障。

接入層統一單層架構和穩定保障:快手最早採用了QUIC代理和應用網關分離的多層架構,存在運維成本、資源成本以及穩定性成本增加的問題,爲此技術團隊對架構做了大幅簡化,採用QUIC/HTTP/HTTPS同層接入方案,同時特別制定了從壓測到實驗、從線上小流量灰度再到線上逐步全量加容災集羣建設的方案。在降低各項成本的同時,充分保證了系統穩定性,實現了線上用戶千萬量級請求的穩定接入。

數據驅動的迭代放量策略:快手的相關服務上線放量需要有嚴格的數據指標衡量,快手技術團隊構建了完善的服務端、客戶端性能指標體系和監控看板,設計了科學的A/B測試方案,配合專業的實驗室測試方法,可以科學地論證架構改進和算法收益,制定放量策略,支持項目快速的迭代優化和穩健上線。在整個大規模上線過程中,沒有出現一次影響用戶的事故。

快手kQUIC服務端技術負責人沈坤錶示,kQUIC是快手在探索先進的標準協議並進行大規模優化過程中取得的重要成果,目前已經取得了良好的業務收益,客戶端實驗反饋顯示,QoE和QoS指標都取得了顯著收益,未來在適當時機將對行業開源,爲行業提供豐富的應用實踐經驗參考,支持QUIC協議在全球的推廣和優化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章