性能测试常见问题案例与原因

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、客户关掉了浏览器,而服务端还在给客户端发送数据;

当测试过程中出现该错误时,可以从以上几个方面定位问题。


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值