檢瓜子網(wǎng)絡(luò)性能優(yōu)化紀(jì)實(shí)

檢瓜子網(wǎng)絡(luò)性能優(yōu)化紀(jì)實(shí)

一天揖、背景

????????檢瓜子是瓜子二手車為二手車評估師開發(fā)的智能車輛評估檢測工具App褂始。在兩年的開發(fā)維護(hù)中诸典,有一個(gè)問題一直困擾著一線評估師:做一些操作時(shí)偶爾會出現(xiàn)“網(wǎng)絡(luò)異常,請重試”的提示崎苗,影響評估師的檢測效率狐粱,用戶體驗(yàn)不友好。為此胆数,技術(shù)團(tuán)隊(duì)針對這個(gè)問題開始做了一系列的動(dòng)作以提高網(wǎng)絡(luò)請求的成功率肌蜻,提升用戶體驗(yàn)。

二必尼、網(wǎng)絡(luò)性能原狀

????????優(yōu)化一個(gè)問題蒋搜,首先要清楚這個(gè)問題目前影響范圍,影響程度是怎樣的判莉,這樣在做優(yōu)化的時(shí)候才能做出前后的對比豆挽,以數(shù)據(jù)展現(xiàn)優(yōu)化動(dòng)作的效果,并逐步提高券盅。為此我們對App內(nèi)所有的網(wǎng)絡(luò)請求進(jìn)行了監(jiān)控祷杈。以2017-11-1日數(shù)據(jù)為例:

? ? ** 網(wǎng)絡(luò)請求成功數(shù)量:1087028

? ? ** 網(wǎng)絡(luò)請求失敗數(shù)量:7291

? ? ** 網(wǎng)絡(luò)失敗率:0.67%

? ? ? ? 除了我們自己APP的監(jiān)控,我們同時(shí)接入了第三方網(wǎng)絡(luò)監(jiān)控平臺“聽云”渗饮,十月中旬的檢測數(shù)據(jù)如下圖,圖中“j******i.guazi.com”是檢瓜子的網(wǎng)絡(luò)請求域名宿刮,不難發(fā)現(xiàn)我們后端服務(wù)的網(wǎng)絡(luò)性能確實(shí)和一些優(yōu)秀的后端服務(wù)“up.qiniu.com”之間有明顯差距互站。

聽云網(wǎng)絡(luò)錯(cuò)誤率檢測數(shù)據(jù)

三、網(wǎng)絡(luò)錯(cuò)誤原因分析

????????我們對2017-11-1所有的網(wǎng)絡(luò)錯(cuò)誤根據(jù)異常的原因做了聚合僵缺,然后分別對每個(gè)原因進(jìn)行錯(cuò)誤占比的統(tǒng)計(jì)胡桃。主要分為DNS解析異常和Socket超時(shí)異常。明細(xì)數(shù)據(jù)如下圖:

網(wǎng)絡(luò)錯(cuò)誤原因及占比 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

四磕潮、DNS異常解決方案

? ? ? ? 為了解決DNS異常的問題翠胰,我們嘗試了 http dns (利用一個(gè) HTTP 的查詢目標(biāo)域名IP的 服務(wù)替代默認(rèn)的 dns解析過程)容贝。我們進(jìn)行了三天的灰度對比,樣本比例為4:6(40%未采用http dns之景,60% 采用了 http dns)斤富。收集了灰度數(shù)據(jù)如下圖:

http dns 灰度對比數(shù)據(jù)

? ? ? ? 分析圖中數(shù)據(jù)可得出幾個(gè)結(jié)論:

? ? ? ? ** 采用了 Http dns 之后我們的網(wǎng)絡(luò)錯(cuò)誤率降低了 20 % 以上。

? ? ? ? ** dns 錯(cuò)誤占所有錯(cuò)誤的比例大幅降低锻狗。

? ? ? ? ** dns 錯(cuò)誤占比降低幅度大于網(wǎng)絡(luò)錯(cuò)誤占比降低幅度:一部分dns錯(cuò)誤轉(zhuǎn)移為了Socket超時(shí)錯(cuò)誤满力。

五、Socket超時(shí)解決方案

? ? ? ? Http 通信在連接建立了以后轻纪,開始進(jìn)入 Socket 通信階段油额,這個(gè)階段包含三個(gè)主要時(shí)間段:

? ? ? ? ** 客戶端通過網(wǎng)絡(luò)發(fā)送request數(shù)據(jù)報(bào)文到server

? ? ? ? ** server處理request并生成response (服務(wù)端接口性能、延時(shí))

????????** 服務(wù)端通過網(wǎng)絡(luò)將response發(fā)送回客戶端

1刻帚、網(wǎng)絡(luò)原因

? ? ? ? 為了及時(shí)發(fā)現(xiàn)和解決網(wǎng)絡(luò)延時(shí)導(dǎo)致的 socket timeout 我們接入了第三方聽云的 ping 檢測服務(wù)潦嘶。它利用分布在全國的不同城市不同運(yùn)營商(移動(dòng)、聯(lián)通崇众、電信)的終端節(jié)點(diǎn)定時(shí) ping 目標(biāo)域名或者IP,查看ping的丟包率以及延時(shí)信息掂僵。這些節(jié)點(diǎn)的類型為 last mile 節(jié)點(diǎn),和我們的目標(biāo)用戶節(jié)點(diǎn)類型一致校摩。 如果某些節(jié)點(diǎn)有問題能夠及時(shí)報(bào)警看峻,以便推動(dòng)運(yùn)維人員幫助我們解決網(wǎng)絡(luò)問題。


全國網(wǎng)絡(luò)延時(shí)對比圖

? ?

部分網(wǎng)絡(luò)節(jié)點(diǎn)異常信息

2衙吩、服務(wù)器接口響應(yīng)時(shí)間

? ? ? ? 導(dǎo)致socket timeout 的另一個(gè)主要原因是因?yàn)榉?wù)端的接口響應(yīng)時(shí)間過長互妓,偶爾會出現(xiàn)接口延時(shí)超過 20S 的嚴(yán)重問題。為了能夠及時(shí)的推送服務(wù)端優(yōu)化接口性能坤塞,我們也對每個(gè)接口的延時(shí)進(jìn)行了監(jiān)控冯勉。每周發(fā)出一個(gè)接口響應(yīng)時(shí)間最長 top 10 的榜單。以便服務(wù)端有針對性的解決某個(gè)接口延時(shí)的問題摹芙。經(jīng)過幾周的共同努力我們的接口平均響應(yīng)時(shí)間從523ms降低到了357ms灼狰。

接口延時(shí) Top 10 榜單

????下圖是一個(gè)接口優(yōu)化后接口延時(shí)的前后對比,延時(shí)曲線有了明顯的變化浮禾。

接口優(yōu)化前后對比圖

? ?????此方法在與服務(wù)端交胚、運(yùn)維人員討論后,我們在公司范圍內(nèi)對所有業(yè)務(wù)線的所有接口進(jìn)行了統(tǒng)一的監(jiān)控盈电,更好的幫助研發(fā)人員發(fā)現(xiàn)問題并及時(shí)解決蝴簇。

Nginx Avg Time system
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市匆帚,隨后出現(xiàn)的幾起案子熬词,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件互拾,死亡現(xiàn)場離奇詭異歪今,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)颜矿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門寄猩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人或衡,你說我怎么就攤上這事焦影。” “怎么了封断?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵斯辰,是天一觀的道長。 經(jīng)常有香客問我坡疼,道長彬呻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任柄瑰,我火速辦了婚禮闸氮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘教沾。我一直安慰自己蒲跨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布授翻。 她就那樣靜靜地躺著或悲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪堪唐。 梳的紋絲不亂的頭發(fā)上巡语,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機(jī)與錄音淮菠,去河邊找鬼男公。 笑死,一個(gè)胖子當(dāng)著我的面吹牛合陵,可吹牛的內(nèi)容都是我干的枢赔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拥知,長吁一口氣:“原來是場噩夢啊……” “哼糠爬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起举庶,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎揩抡,沒想到半個(gè)月后户侥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镀琉,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年蕊唐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屋摔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡替梨,死狀恐怖钓试,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情副瀑,我是刑警寧澤弓熏,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站糠睡,受9級特大地震影響挽鞠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜狈孔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一信认、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧均抽,春花似錦嫁赏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至喘漏,卻和暖如春护蝶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背翩迈。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工持灰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人负饲。 一個(gè)月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓堤魁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親返十。 傳聞我的和親對象是個(gè)殘疾皇子妥泉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 10,965評論 6 13
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測試 ...
    KeKeMars閱讀 6,330評論 0 6
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,095評論 25 707
  • 聽著歌的男人 帶著口罩的女子 牽著孩子的老人 都擁在 這片狹窄的空間里 他微瞇著眼 你沉思著 我緊緊拉著扶手 一起...
    半城離火閱讀 468評論 2 6
  • 文學(xué)理論課上,老師拋出一個(gè)話題:文品與人品洞坑。關(guān)于《黃金時(shí)代》盲链,關(guān)于蕭紅,由一個(gè)網(wǎng)上的短微博引入。 假如刽沾,要你跟帖本慕,...
    牛芘蓎閱讀 1,527評論 0 1