天天看點

線上服務依賴的tair服務随機性的短時大幅逾時問題排查處理

1. 逾時問題報警

2017年02月22日 監控服務突然出現P0級别報警,線上服務出現1018個逾時,之前未出現過如此大數量的逾時。

2. 問題初步确定

經過排查是由于tair逾時導緻的,詳見下圖,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,符合我們對流量的預期,證明解決方案已有效運作,後續再觀察下服務運作效果。