1. 逾時問題報警
2017年02月22日 監控服務突然出現P0級别報警,線上服務出現1018個逾時,之前未出現過如此大數量的逾時。
2. 問題初步确定
經過排查是由于tair逾時導緻的,詳見下圖,tair同學反映是tair請求達到服務上限,到此這個問題基本可以交差了,畢竟服務很快恢複正常。
3. 深入排查問題原因
有幾個疑點難以解釋
-
- 從tair逾時開始,到tair逾時結束一段時間,qps始終保持6k左右,而且後續還要高一些,如果是服務請求達到上限應該是服務一直維持逾時狀态,為什麼服務很快又恢複了呢?
- 之前偶爾也出現過類似的tair請求逾時,隻是沒有短時間連續出現,之前的qps比現在要低很多,為什麼也會出現呢?
初步認為有可能是poi全量同步導緻的瞬時壓力導緻tair短時間服務逾時,但監控系統難以監控到qps短時間的變化。
經過調研确認,
-
- lbs單機同步需要1.6-1.7s,同步資料量12W,此時的批量端口qps可以到達150;
- 在最差的情況40台伺服器同時請求,批量端口qps可以達到6000,此情況下,瞬間會超過tair的1200(批量500條件下)服務上限。
- 超過8台機器在lbs短時間同步時,同時通路tair的機率很低,這也跟偶爾會出現tair逾時的現象比對。
4. 初步解決方案
控制lbs同步資料時的tair通路qps,初步将qps降低為5(最差情況批量qps為200,不會對tair服務造成太大影響),根據服務後續情況再調整相應數值。
5. 效果驗證
在低流量(易驗證小流量變化)以及相同業務請求量(排除業務請求幹擾)的情況下,Tair的通路qps降低90,符合我們對流量的預期,證明解決方案已有效運作,後續再觀察下服務運作效果。