《云視聽小電視性能和效率優化實踐-郭利兵.pdf》由會員分享,可在線閱讀,更多相關《云視聽小電視性能和效率優化實踐-郭利兵.pdf(32頁珍藏版)》請在三個皮匠報告上搜索。
1、B B站小電視全鏈路性能站小電視全鏈路性能和效率優化實踐和效率優化實踐2023/12/29作者:郭利兵作者:郭利兵郭利兵郭利兵2021至今:bilibilibilibili 多屏技術部 資深工程師20142021:美團點評美團點評 資深工程師20112014:花旗金融花旗金融 高級工程師20072011:大連理工大連理工01小電視介紹小電視介紹小電視全稱云視聽小電視小電視全稱云視聽小電視豐富中長視頻Feed流純凈無廣告優勢內容優質國創&番劇高分紀錄片大型電競賽事直播bilibili的電視版,電視看B站簡介簡介特點特點02優化背景優化背景為什么要做優化?為什么要做優化?向外看向外看向內看向內看1
2、.性能方面:和同行標桿電視App在啟動,起播,卡頓率等方面存在差距,小電視的啟動時長中位數4秒+,行業標桿都在3秒內。2.成本方面:當前大環境下,降本增效是互聯網公司必修課。小電視2018上線,期間經歷了從0到1的拓荒階段以及井噴式增長階段,過去在產品和功能上投入較多精力,現在需要在用戶體驗上和效率上做精細化運營,修煉內功。提升體驗降低成本02分享重點分享重點目標制定目標制定&拆解拆解性能優化性能優化實踐實踐成本優化成本優化實踐實踐成果成果&總結總結03目標確定目標確定確定指標確定指標-性能目標性能目標啟動快啟動快起播快起播快卡頓少卡頓少從 4 s降低 3s 以內啟動時長啟動時長TP 90 1
3、400ms-TP 90 1000ms 以內首幀起播時間首幀起播時間單位時間內的(卡頓次數/播放 vv 數),從0.012 降低至 0.008以內卡頓率卡頓率如何評判一個電視視頻如何評判一個電視視頻AppApp的性能好壞呢?的性能好壞呢?03目標確定目標確定確定指標確定指標-成本目標成本目標1.xx1.xx元元1 1元以內元以內月均單月均單DAUDAU的帶寬成本的帶寬成本視頻視頻AppApp的成本主要有哪些?的成本主要有哪些?帶寬成本帶寬成本(85%)(85%)非帶寬成本非帶寬成本(15%)(15%)03目標拆解目標拆解梳理鏈路梳理鏈路啟動快啟動快起播快起播快卡頓少卡頓少成本低成本低Decode
4、rDecoder03目標拆解目標拆解性能目標拆解性能目標拆解-啟動時長啟動時長1.1.性能指標拆解性能指標拆解1.11.1 APPAPP啟動時長啟動時長1.2 首幀起播時長1.3 播放卡頓率2.效率指標拆解2.1 單DAU帶寬成本3秒2.5秒客戶端總耗時:客戶端總耗時:1秒0.5秒服務端總耗時:服務端總耗時:啟動時長中位數降低至啟動時長中位數降低至3s3s內內客服端3s服務端1s03目標拆解目標拆解性能目標拆解性能目標拆解-首幀起播時長首幀起播時長1.1.性能指標拆解性能指標拆解1.1 APP啟動時長1.21.2 首幀起播時長首幀起播時長1.3 播放卡頓率2.效率指標拆解2.1 單DAU帶寬成
5、本CDNCDN下載:下載:650ms450ms解碼耗時:解碼耗時:700ms500ms起起播時長播時長TP 90 1000ms TP 90 1000ms 以內以內 80ms700ms 600ms 50ms03目標拆解目標拆解性能目標拆解性能目標拆解-卡頓率卡頓率1.1.性能指標拆解性能指標拆解1.1 APP啟動時長1.2 首幀起播時長1.31.3 播放卡頓率播放卡頓率2.效率指標拆解2.1 單DAU帶寬成本卡頓率降低至卡頓率降低至0.0080.008以內以內降低網絡波動影響降低CDN不穩定影響低配設備提供極速版03目標拆解目標拆解效率目標拆解效率目標拆解-帶寬成本帶寬成本1.1.性能指標拆解性
6、能指標拆解1.1 APP啟動時長1.2 首幀起播時長1.3 播放卡頓率2.2.效率指標拆解效率指標拆解2.12.1 單單DAUDAU帶寬成本帶寬成本降CDN價格降CDN浪費降碼率單單DAUDAU成本降低至成本降低至1 1元以內元以內04性能優化實踐性能優化實踐APPAPP啟動時長優化啟動時長優化-客戶端優化客戶端優化梳理當前啟動加載任務梳理當前啟動加載任務問題問題1 1,當前任務大部分是串行,當前任務大部分是串行問題問題2 2,部分組件,部分組件&任務無需提前加載任務無需提前加載問題問題3 3,有很多獨立的小進程,比如投屏,埋點進程,有很多獨立的小進程,比如投屏,埋點進程耗時較長耗時較長04性
7、能優化實踐性能優化實踐APPAPP啟動時長優化啟動時長優化-客戶端優化客戶端優化串行改并行串行改并行-DAG-DAG有向無環圖有向無環圖04性能優化實踐性能優化實踐APPAPP啟動時長優化啟動時長優化-客戶端優化客戶端優化長鏈任務,日志任務,菜單拉取任務等不影響用戶體驗的任務,延后加載。延遲加載延遲加載將部分進程合并,避免過多進程影響啟動時長,實際操作中,我們將投屏、埋點和主進程合并,來提升啟動效率。合并任務合并任務04性能優化實踐性能優化實踐APPAPP啟動時長優化啟動時長優化-服務端優化服務端優化首頁推薦接口首頁推薦接口400ms+用戶個性化接口用戶個性化接口200ms+分區接口分區接口2
8、00ms+梳理當前啟動時調用后端接口梳理當前啟動時調用后端接口開機圖展示接口33ms消息中心接口28ms開機圖展示接口33ms家庭模式查詢33ms游客信息查詢4.5ms搜索底紋詞33ms問題問題1 1,RedisRedis耗時不穩定,耗時不穩定,TP90TP90 20ms+20ms+問題問題2 2,接口返回數據量大,接口返回數據量大,400kb+400kb+問題問題3 3,接口返回數據字段有,接口返回數據字段有40%40%不被使用不被使用04性能優化實踐性能優化實踐APPAPP啟動時長優化啟動時長優化-服務端優化服務端優化緩存優化緩存優化HTTP轉RPC協議,傳輸數據壓縮1/3左右,減少客戶端
9、序列化以及傳輸壓力,同時性能提高了 10%左右數據壓縮數據壓縮HttpHttp請求請求RPCRPC請求請求VSVS壓縮率壓縮率Json二進制文件序列化協議序列化協議解析效率解析效率耗時較長較快較低,冗余信息多壓縮率高04性能優化實踐性能優化實踐APPAPP啟動時長優化啟動時長優化-服務端優化服務端優化抽象編排抽象編排通過日志工具分析接口調用鏈路,發現存在大量的無效調用,主要原因是存在很多大而全的接口,一次返回太多冗余信息;將這些大接口進行拆分,針對起播時的推薦場景定制小而美的依賴接口04性能優化實踐性能優化實踐首幀起播時長優化首幀起播時長優化操作播放感知播放首幀起播過程首幀起播過程數據下載創建
10、播放器初始化解碼器視頻解碼音頻解碼視頻幀渲染音頻渲染視頻開始播放網絡耗時網絡耗時600ms600ms內核初始化耗時內核初始化耗時500ms500ms渲染耗時渲染耗時200ms200ms創建解碼器04性能優化實踐性能優化實踐首幀起播時長首幀起播時長-網絡耗時優化網絡耗時優化對連播場景就是提前下載視頻數據的一部分,來達到快速起播的效果,那具體什么時候預加載。預加載預加載當前視頻下載完畢后時機時機根據視頻長度、頭大小、碼率,計算出大小,一般預加載500ms大小大小最少2個,根據調優以及真實命中情況判斷,根據經驗3個利用率較高。數量數量04性能優化實踐性能優化實踐首幀起播時長首幀起播時長-解碼器復用解
11、碼器復用解碼器復用解碼器復用createconfigstartstop04性能優化實踐性能優化實踐卡頓率優化卡頓率優化-網絡優化網絡優化減少緩存動態緩存動態緩存網絡差網絡差網絡好網絡好恢復碼率自適應碼率自適應碼率降低碼率加大緩存04性能優化實踐性能優化實踐卡頓率優化卡頓率優化-CDN-CDN優化優化4K4K 回源路徑縮短回源路徑縮短BackupBackup URLURL 方案方案定期檢測當前源的狀態,如果檢測到播放問題(例如卡頓、緩沖過長等),自動切換至備份CDN低峰期低峰期4k4k資源預熱資源預熱05成本優化實踐成本優化實踐降低成本與提升效率雙管齊下降低成本與提升效率雙管齊下降低降低帶寬成本
12、帶寬成本優化優化碼率與畫質碼率與畫質05效率優化實踐效率優化實踐CDNCDN成本優化成本優化-帶寬成本組成帶寬成本組成帶寬價格商業CDN自建CDNPCDN提高提高PCDNPCDN利用率利用率降低降低CDNCDN下載量下載量帶寬成本95峰值用量CDN單價=*05效率優化實踐效率優化實踐CDNCDN成本優化成本優化-降降CDNCDN價格價格&用量用量動態動態PCDNPCDN策略策略我們聯合CDN調度團隊,通過監控網速、碼率、剩余視頻緩存等多個因素,動態的權衡什么時候用廉價CDN,什么時候用商業CDN,在保證播放質量的前提下盡可能的多用廉價CDN。削峰填谷削峰填谷CDN的計價方式一般使用采用95峰值
13、,所以我們在低峰期提前對熱度較高的視頻進行預熱,降低回源比例,從而降低CDN 95峰值低峰期預熱占比占比85%85%05效率優化實踐效率優化實踐CDNCDN成本優化成本優化-降清晰度降清晰度&降浪費降浪費用戶差異化用戶差異化不同機型使用不同默認清晰度不同機型使用不同默認清晰度,低端機型存在卡頓情況使用較低的清晰度,一方面低端機型播放高清視頻存在卡頓,另一方面也能降低響應的VV碼率從而減低帶寬成本。針對不同用戶使用不同默認清晰度針對不同用戶使用不同默認清晰度,登錄用戶默認較高清晰度,一來提供用戶登錄率,二來降低默認視頻的播放碼率。投屏清晰度調整投屏清晰度調整,投屏到第三方清晰度調整成720p,一
14、來是提高小電視的DAU,二來也降低帶寬成本。降低預加載浪費降低預加載浪費視頻預加載動態化視頻預加載動態化,動態調整Feeds流的的加載數量和時長,AB實驗尋找最優值。按需加載預覽圖,按需加載預覽圖,針對用戶的“拖拽行為,我們會預加載全量預覽圖,存在大量浪費,改成按需實時預加載預覽圖。05效率優化實踐效率優化實踐碼率增強優化碼率增強優化降碼率降碼率視頻碼率是指視頻文件在單位時間內的數據傳輸速率,也叫比特率(bits per second,bps)主要是通過視頻壓縮,使用視頻壓縮算法對視頻進行編碼。窄帶高清算法,視頻轉碼過程優化,視頻經過窄帶高清轉碼后,帶寬變小,畫質不變。自研轉碼算法。提畫質提畫
15、質聯合視頻團隊通過增強算法提升 1080P、4K 的畫質,主要通過 HDR 技術以及局部增強等技術,如下圖同樣是 1080p,增強后效果顯著。05效率優化實踐效率優化實踐0202 碼率增強優化碼率增強優化-效果效果06成果成果&總結總結總結總結DecoderDecoder06成果成果&總結總結成果成果2.92.9s s啟動時長從 4.2 秒 降低至 2.9 秒4.24.2s s0.560.56%播放卡頓率從 1.2%降低至 0.56%1.21.2%900900msms首幀起播時長從 1400ms 降低至 900ms14001400msms20%20%帶寬成本每月/單 DAU 帶寬成本 1.xx 降低至 0.xx半年節省帶寬成本 xx萬+1.xx1.xx元元感謝傾聽,歡迎交流感謝傾聽,歡迎交流