个人总结:性能测试常见问题案例与原因
TPS下降問題分析
| 某產(chǎn)品為方便用戶使用開發(fā)SDK接口,對HTTP API進(jìn)行了包裝。測試過程中,SDK接口與直接使用HTTP API訪問的性能對比,發(fā)現(xiàn)在同樣的壓力測試場景下SDK的TPS下降很多。 使用工具Nprofile定位發(fā)現(xiàn)代碼中調(diào)用連接池管理部分代碼消耗時(shí)間比HTTP API長,進(jìn)一步查看代碼發(fā)現(xiàn)SDK使用HttpClient連接池時(shí)默認(rèn)的最大連接數(shù)DEFAULT_MAX_CONNECTIONS = 50,將其設(shè)置為400時(shí),SDK的TPS增大。 建議:TPS上不去,首先檢查連接數(shù)、線程池等配置是否合理。 |
HTTP請求響應(yīng)碼為5XX問題的定位和分析
?
| 正常的HTTP請求響應(yīng)碼為2XX,表示成功響應(yīng),但是測試過程中經(jīng)常會遇到響應(yīng)碼為5XX的情況。常見的5XX響應(yīng)碼有500和502錯(cuò)誤: ? * 500錯(cuò)誤 原因:500錯(cuò)誤表示服務(wù)器內(nèi)部錯(cuò)誤 案例:出現(xiàn)500錯(cuò)誤時(shí),服務(wù)端日志中同時(shí)會出現(xiàn)錯(cuò)誤日志,曾經(jīng)遇到的錯(cuò)誤有:數(shù)據(jù)庫處理能力成為瓶頸,連接數(shù)不夠,出現(xiàn)get null?from pool?異常,通過調(diào)整DDB?連接池的大小解決該問題。 定位方法:當(dāng)遇到500錯(cuò)誤時(shí),首先查看服務(wù)端日志,通過錯(cuò)誤日志信息進(jìn)一步定位返回碼錯(cuò)誤的原因。 ? * 502錯(cuò)誤 原因:502錯(cuò)誤是網(wǎng)關(guān)錯(cuò)誤,同時(shí)nginx error日志中會出現(xiàn)(104: Connection reset by peer) while?reading response header from upstream 案例:曾經(jīng)一次性能測試過程中,因?yàn)椴l(fā)連接數(shù)超過了nginx配置的最大連接數(shù),導(dǎo)致出現(xiàn)502錯(cuò)誤,通過調(diào)整nginx的最大連接數(shù)解決該問題。 定位方法: 出現(xiàn)502以及Connection reset by peer錯(cuò)誤的常見原因有: 1、并發(fā)連接數(shù)大于服務(wù)端最大連接數(shù),服務(wù)端會將其中一些連接關(guān)閉掉; 2、客戶關(guān)掉了瀏覽器,而服務(wù)端還在給客戶端發(fā)送數(shù)據(jù); 當(dāng)測試過程中出現(xiàn)該錯(cuò)誤時(shí),可以從以上幾個(gè)方面定位問題。 ? |
?
?
本文章為作者原創(chuàng)
?禁止?
其他公眾賬號轉(zhuǎn)載,若有轉(zhuǎn)載,請標(biāo)明出處
轉(zhuǎn)載于:https://www.cnblogs.com/andashu/p/6441113.html
總結(jié)
以上是生活随笔為你收集整理的个人总结:性能测试常见问题案例与原因的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring配置druid连接池和监控数
- 下一篇: 登录功能实现