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

愛奇藝海外App的網(wǎng)絡(luò)優(yōu)化實踐

移動開發(fā) 移動應(yīng)用
愛奇藝推出的國際版面向全球的用戶,在面臨海外網(wǎng)絡(luò)復(fù)雜的環(huán)境,針對性做了一系列優(yōu)化實踐,取得了不錯的效果,在此總結(jié)分享我們的一些做法和優(yōu)化思路,希望對你有所幫助。

?做海外市場,特別是目標(biāo)面向全球的用戶,網(wǎng)絡(luò)的重要性不言而喻。試想一個移動端應(yīng)用,打開 App 首頁需要 10s 的時間,恐怕會讓一半的用戶流失。愛奇藝推出的國際版面向全球的用戶,在面臨海外網(wǎng)絡(luò)復(fù)雜的環(huán)境,針對性做了一系列優(yōu)化實踐,取得了不錯的效果,在此總結(jié)分享我們的一些做法和優(yōu)化思路,希望對你有所幫助。

優(yōu)化實踐的幾個核心:能不請求網(wǎng)絡(luò)就不請求,請求的鏈接目標(biāo) 0-RTT,請求的內(nèi)容越小越好。

01  調(diào)研當(dāng)?shù)氐木W(wǎng)絡(luò)情況

在 App 初期版本內(nèi)增加請求鏈路的采樣。樣本數(shù)足夠的情況下,可以清楚你要推廣的市場是怎樣的環(huán)境。樣本數(shù)據(jù)讓我們清楚發(fā)現(xiàn)了各個國家、地區(qū)網(wǎng)絡(luò)的問題,在大規(guī)模宣傳和投入前,做好 App 的基礎(chǔ)工作非常重要。

圖:海外用戶至海外數(shù)據(jù)中心的網(wǎng)絡(luò)延遲(這是監(jiān)測節(jié)點數(shù)據(jù),用戶端延遲更高)

?圖:海外主要國家、地區(qū)移動網(wǎng)絡(luò)情況

在調(diào)研階段,我們發(fā)現(xiàn)了以下問題比較明顯,切實影響我們的運(yùn)營及 App 體驗。

一、運(yùn)營商劫持嚴(yán)重,DNS 劫持、HTTP 劫持。二、移動端網(wǎng)絡(luò)復(fù)雜  東南亞的網(wǎng)絡(luò)基礎(chǔ)建設(shè)還待改善。三、低端 Android 機(jī)有一定的占比,數(shù)量級別影響決策。四、國際網(wǎng)絡(luò)用戶端到服務(wù)器的延遲高

在初期階段,技術(shù)工作的核心是解決以上問題,為后續(xù)的運(yùn)營做好基礎(chǔ)建設(shè)。因為業(yè)務(wù)接口大部分為 HTTP 形式,就開始圍繞 HTTPS 進(jìn)行針對性改進(jìn)。

圖:一個HTTPS請求階段分析

一個 HTTPS 在第一請求會有 5 個 RTT

1RTT(DNS)+ 1RTT(TCP 握手)+ 2RTT(TLS1.2)+ 1RTT(HTTP 鏈接)

如果以端到服務(wù) 50ms 延遲為例,一個 HTTPS 的接口延遲 =  350ms =  50*5+ 100ms(服務(wù)端)如果目標(biāo)是一個非國內(nèi)用戶,打開首頁需要 1.1s, 這個時間顯然有點長。

下面開始進(jìn)行技術(shù)改進(jìn)的正文:圖:概括技術(shù)性優(yōu)化的關(guān)鍵點

02  改進(jìn)優(yōu)化方案

01 基礎(chǔ)鏈路的改進(jìn)優(yōu)化 

1、DNS 優(yōu)化調(diào)整

DNS 的解析改為 HTTPDNS,DNS 的改進(jìn)上線后觀察初始連接請求提升 17% 的效率。

解決域名劫持問題 (東南亞地區(qū)回傳的數(shù)據(jù)顯示有不少劫持)

解決 LocalDNS 非就近分配問題

結(jié)合業(yè)務(wù)可以做解析預(yù)熱。

2、傳輸層的優(yōu)化調(diào)整? 

MTU 的問題  

  • Client 端和 Server 端不同的 MTU 值會導(dǎo)致丟包率過高。AWS 某些場景實例默認(rèn)巨型幀:MTU 是 9001,但接收端默認(rèn) 1500,這時候就會出現(xiàn)一些丟包的現(xiàn)象。
  • 如果你用了多個云商服務(wù),用 VPN 組網(wǎng),IP隧道封裝的數(shù)據(jù)臨界 1500,又會造成丟包、包重傳問題。
  • 最嚴(yán)重的情況:部分網(wǎng)絡(luò)封殺 ICMP 協(xié)議,導(dǎo)致 MTU 無法自動協(xié)商?

TCP 層面的優(yōu)化  

TCP 擁塞控制優(yōu)化?

擁塞窗口 CongWin 是未接收到接收端確認(rèn)情況下連續(xù)發(fā)送的字節(jié)數(shù);  CongWin 是動態(tài)調(diào)整,取決于帶寬和延遲的積,比如 100MB 的帶寬 100ms 的延遲環(huán)境。時延帶寬積 = 100Mbps*100ms = (100/8)*(100/1000) = 1.25MB理論上 CongWin 窗口可以最大化到 1.25MB。CentOS 默認(rèn)CongWin = 20*MSS,在 29KB 左右,離上限 1.26MB 差太多了,默認(rèn)值上調(diào)TCP的啟動會更快。

TCP 快速打開 (TCP Fast Open:TFO)?

TCP 的 keepalive 下依然會有鏈接斷掉重建的情況,TFO 是針對這種情況的優(yōu)化。圖:TFO 的原理機(jī)制

在我們觀察中開啟 TFO 機(jī)制,海外業(yè)務(wù)一個 RTT 通常時間在 100ms 以上,HTTP 請求效率提升了 12% 左右。

02 應(yīng)用層的改進(jìn)優(yōu)化 

1、HTTP 的優(yōu)化

?HTTP1.1 有個 keep-alive 作用是復(fù)用 TCP 鏈接,減少新建的消耗,對于瀏覽器的業(yè)務(wù)比較適用,但對于移動端這種時間分散的請求,大部分請求還是新建連接。HTTP1.1 的串行機(jī)制有頭部阻塞的問題

2、SSL 層優(yōu)化

盡量升級到 TLS1.3,利用 Pre-shared Key 機(jī)制,開啟 ssl_early_data 可以進(jìn)一步優(yōu)化 “0-RTT ”,如果無法升級 TLS 版本,優(yōu)化密鑰算法為 ECDHE,運(yùn)算速度快,握手的消息往返由 2-RTT 減少到 1-RTT,能達(dá)到與 TLS1.3 類似的效果。圖:TLS 版本的區(qū)別

TLS1.3 經(jīng)過優(yōu)化后,一個 HTTP 請求由之前的 4 個 RTT 減少為 3 個 RTT。

3、升級 HTTP2.0

?幾個重要的改進(jìn)點:分幀傳輸、多路復(fù)用、頭部壓縮。 

多路復(fù)用 

在 HTTP/2 中,兩個非常重要的概念:幀(frame)和流(stream)。幀代表著最小的數(shù)據(jù)單位,每個幀會標(biāo)識出該幀屬于哪個流,流也就是多個幀組成的數(shù)據(jù)流。多路復(fù)用,就是在一個 TCP 連接中可以存在多條流。這些改進(jìn)可以避免 HTTP 隊頭阻塞問題,提高傳輸性能。 

頭部壓縮 

開發(fā)人員如果不注意對 header 內(nèi)容的控制,會造成 header 內(nèi)容失控的現(xiàn)象,客戶端極容易存儲一個非常大的 Cookie圖:HTTP2 的分幀傳輸機(jī)制

4、邊緣節(jié)點動態(tài)加速 這個是非常有效的方式

?盡可能離用戶最近,利用邊緣節(jié)點對路由、鏈路進(jìn)行優(yōu)化,提高動態(tài)服務(wù)的效率。相較于直連模式,使用動態(tài)加速后,P90 的接口延遲效率提升了 60%。

圖:愛奇藝海外動態(tài)加速的效果提升

5、啟用兜底機(jī)制 

?對于失敗的請求,啟用兜底的協(xié)議 QUIC 或者 kcp??蛻舳说氖÷试?3% 左右,對這部分請求使用 UDP 協(xié)議兜底嘗試,在我們的觀察成功率提升了 45%。

 03 傳輸內(nèi)容的優(yōu)化 

1.應(yīng)用 Brotli?

因為預(yù)置了字典,在同等級別的壓縮率下,對比 gzip 至少提升了 17% 的壓縮比,接口平均的 Content-Size 由 30KB,降至 18KB。

2.接口由 JSON 改為 Google Protobuf?

應(yīng)用 Protobuf 的重要原因是解析效率比 JSON 至少高四五倍,在節(jié)點深度和數(shù)據(jù)量大的情況下更明顯。但注意 Protobuf 內(nèi)部的 varint 壓縮,只對小于 128 的數(shù)字進(jìn)行可變長壓縮。實際效果不大,生產(chǎn)環(huán)境如果數(shù)據(jù)量大,外層的壓縮如 gzip 不可少。

3.圖片格式升級為 WebP?

在應(yīng)用 WebP 的同時,降低海報圖片的質(zhì)量,實踐看海報的 quality 設(shè)置為 85% 肉眼難以分辨,相對同質(zhì)量的 JPEG 或者 PNG ,可以最大減小 45% 的體積。應(yīng)用效果明顯。App 打開首頁圖片的加載提升肉眼可見。

04 業(yè)務(wù)層面的優(yōu)化改進(jìn) 

1.減少不必要請求:

?一些通用內(nèi)容,如導(dǎo)航、頻道,通常由運(yùn)營人員主動更新。如下圖,增加一個啟動階段請求的接口,里面放入內(nèi)容更新的時間戳,與本地 cache 的時間戳有差異,則異步請求更新。

?

2.區(qū)別用戶網(wǎng)絡(luò),適應(yīng)不同的策略。?

對于視頻,非 WiFi 默認(rèn)啟播碼率為 360P。對于海報,后端接口提供兩種質(zhì)量的 Url,WiFi 高質(zhì),4G 低質(zhì)。

3.更多的業(yè)務(wù)優(yōu)化

?增加請求重試、調(diào)整 HTTP 的超時時間,請求緩存等等  這些可以根據(jù)業(yè)務(wù)的需求進(jìn)行調(diào)整。

03 結(jié)尾

愛奇藝海外版經(jīng)過一系列細(xì)節(jié)優(yōu)化,用戶體驗持續(xù)上升。用戶接口延遲、客戶端失敗率、視頻播放成功率一系列的關(guān)鍵指標(biāo)得到很大的改善。這也助力愛奇藝在東南亞多個國家的應(yīng)用市場排名升至 TOP 1。另外 App 優(yōu)化、Server 延遲優(yōu)化、產(chǎn)品體驗的改進(jìn),這一系列只有相輔相成才可以最大化提升用戶體驗。?

責(zé)任編輯:未麗燕 來源: 愛奇藝技術(shù)產(chǎn)品團(tuán)隊
相關(guān)推薦

2022-07-22 15:31:45

愛奇藝?視頻內(nèi)容延遲敏感

2021-01-08 13:42:28

愛奇藝機(jī)器學(xué)習(xí)深度學(xué)習(xí)

2023-06-05 07:36:30

數(shù)據(jù)湖大數(shù)據(jù)架構(gòu)

2018-12-27 13:11:04

愛奇藝APP優(yōu)化

2023-05-17 07:42:11

2021-07-05 16:23:07

愛奇藝APP移動應(yīng)用

2012-07-18 09:29:14

愛奇藝Windows Pho

2015-07-23 14:50:54

2015-04-29 18:38:48

愛奇藝華碩英特爾

2016-12-23 14:03:40

華為愛奇藝

2023-08-11 07:44:09

大數(shù)據(jù)數(shù)據(jù)分析

2015-07-22 12:53:55

羅生門式

2013-05-09 09:16:03

愛奇藝

2021-12-06 07:49:43

愛奇藝裁員互聯(lián)網(wǎng)

2015-07-16 16:22:41

愛奇藝

2014-08-19 15:32:11

愛奇藝百加視頻手機(jī)

2020-02-17 19:48:15

超長假服務(wù)器殺手

2014-11-11 16:07:11

2015-07-07 12:03:01

點贊
收藏

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