讀取超時(shí)問(wèn)題記錄

前言

之前我們有一個(gè)業(yè)務(wù)在負(fù)載大的情況下超時(shí)多,領(lǐng)導(dǎo)下令消滅超時(shí)交易。義不容辭干吧。

問(wèn)題描述

我們這個(gè)業(yè)務(wù)輸出形式類似芝麻評(píng)分,部署架構(gòu)是 接入層-》業(yè)務(wù)邏輯-》評(píng)分服務(wù)層。每個(gè)層對(duì)應(yīng)一個(gè)物理進(jìn)程。真正計(jì)算分?jǐn)?shù)的就是評(píng)分服務(wù)層。我想按照這樣的步驟依次查詢問(wèn)題:1 評(píng)分服務(wù)是否達(dá)到性能上線 2 是否業(yè)務(wù)邏輯層訪問(wèn)評(píng)分服務(wù)條件苛刻

1 評(píng)分服務(wù)是否達(dá)到性能上線

我對(duì)評(píng)分服務(wù)的交易時(shí)間做了一個(gè)統(tǒng)計(jì),樣本量95w:

  • 平均響耗時(shí)時(shí)間 301ms
  • 標(biāo)準(zhǔn)查 238ms
  • 最小耗時(shí)時(shí)間 6ms
  • 前25%耗時(shí)時(shí)間 176ms
  • 前75%耗時(shí)時(shí)間 372ms
  • 前90%耗時(shí)時(shí)間 511ms
  • 前99%耗時(shí)時(shí)間 993ms
  • 最大耗時(shí)時(shí)間 15000ms
  • 高于10秒的數(shù)量 26筆

沒(méi)有處理失敗的交易,但是有耗時(shí)比較長(zhǎng)的交易,評(píng)分服務(wù)并沒(méi)有達(dá)到上限。

為什么有的交易耗時(shí)超過(guò)10s?從業(yè)務(wù)的角度說(shuō),可能某個(gè)人的數(shù)據(jù)量大,計(jì)算占用io和cpu都比較大。

2 是否業(yè)務(wù)邏輯層訪問(wèn)評(píng)分服務(wù)條件苛刻

業(yè)務(wù)邏輯訪問(wèn)評(píng)分服務(wù)是通過(guò)nginx做反向代理的,最終請(qǐng)求是負(fù)載到多個(gè)服務(wù)器上。我們觀察當(dāng)時(shí)的nginx訪問(wèn)日志,發(fā)現(xiàn)有499的情況。

nginx 499 CLIENT CLOSED REQUEST

nginx引入的非標(biāo)準(zhǔn)的狀態(tài)碼,來(lái)表示當(dāng)nginx正在處理請(qǐng)求時(shí),客戶端關(guān)閉了連接

我查詢了業(yè)務(wù)邏輯層訪問(wèn)評(píng)分服務(wù)的時(shí)間:連接2秒,讀取10秒。問(wèn)題找到,當(dāng)評(píng)分服務(wù)負(fù)載比較大時(shí),處理某些請(qǐng)求的時(shí)間可能會(huì)超過(guò)10秒。因?yàn)闃I(yè)務(wù)邏輯層設(shè)置的讀取超時(shí)時(shí)間10s,所以主動(dòng)斷開了連接。

方案

方案1,修改業(yè)務(wù)邏輯層訪問(wèn)評(píng)分服務(wù)和接入層訪問(wèn)業(yè)務(wù)邏輯層的讀取時(shí)間,大于評(píng)分服務(wù)正常處理請(qǐng)求的最大時(shí)間。缺點(diǎn):這是治標(biāo)不治本的方法,客戶的體驗(yàn)比較差。

方案2,在評(píng)分服務(wù)層解決,找出消耗時(shí)間比較大的代碼位置,考慮優(yōu)化。缺點(diǎn),周期比較長(zhǎng)

方案3,橫向拓展評(píng)分服務(wù)層。缺點(diǎn),消耗機(jī)器資源(沒(méi)那多的錢買機(jī)器)

潛在的問(wèn)題

增大客戶端的讀取時(shí)間,是否會(huì)影響整體系統(tǒng)的吞吐量

我們統(tǒng)計(jì)了評(píng)分服務(wù)耗時(shí)時(shí)間相關(guān)指標(biāo),百分之99的交易均能在993ms,即1s內(nèi)完成,真正耗時(shí)長(zhǎng)的交易非常少,所以對(duì)整體的系統(tǒng)吞吐量基本構(gòu)不成影響。

后記

遇到問(wèn)題,分析問(wèn)題,以事實(shí)說(shuō)話。

stay hungry, stay foolish

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容