文章出處

TPS下降問題分析

某產品為方便用戶使用開發SDK接口,對HTTP API進行了包裝。測試過程中,SDK接口與直接使用HTTP API訪問的性能對比,發現在同樣的壓力測試場景下SDK的TPS下降很多。

使用工具Nprofile定位發現代碼中調用連接池管理部分代碼消耗時間比HTTP API長,進一步查看代碼發現SDK使用HttpClient連接池時默認的最大連接數DEFAULT_MAX_CONNECTIONS = 50,將其設置為400時,SDK的TPS增大。

建議:TPS上不去,首先檢查連接數、線程池等配置是否合理。

HTTP請求響應碼為5XX問題的定位和分析

 

正常的HTTP請求響應碼為2XX,表示成功響應,但是測試過程中經常會遇到響應碼為5XX的情況。常見的5XX響應碼有500和502錯誤:

 

* 500錯誤

原因:500錯誤表示服務器內部錯誤

案例:出現500錯誤時,服務端日志中同時會出現錯誤日志,曾經遇到的錯誤有:數據庫處理能力成為瓶頸,連接數不夠,出現get null from pool 異常,通過調整DDB 連接池的大小解決該問題。

定位方法:當遇到500錯誤時,首先查看服務端日志,通過錯誤日志信息進一步定位返回碼錯誤的原因。

 

* 502錯誤

原因:502錯誤是網關錯誤,同時nginx error日志中會出現(104: Connection reset by peer) while reading response header from upstream

案例:曾經一次性能測試過程中,因為并發連接數超過了nginx配置的最大連接數,導致出現502錯誤,通過調整nginx的最大連接數解決該問題。

定位方法:

出現502以及Connection reset by peer錯誤的常見原因有:

1、并發連接數大于服務端最大連接數,服務端會將其中一些連接關閉掉;

2、客戶關掉了瀏覽器,而服務端還在給客戶端發送數據;

當測試過程中出現該錯誤時,可以從以上幾個方面定位問題。

 

 

 

本文章為作者原創

🈲禁止🈲

其他公眾賬號轉載,若有轉載,請標明出處


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()