性能测试工具 LR 接口测试 TPS 持续下降 (jmeter 正常),lr 偷懒了?

刘玉庆 · 2018年05月04日 · 最后由 刘玉庆 回复于 2018年05月15日 · 1698 次阅读

最近一个微服务接口的性能测试项目,以往经验,正常一个接口的单接口负载的TPS能达到3000多。
测试某些接口的时候出现了TPS持续下降的问题。
测试场景:
1、脚本只有一个url,一个检查点

Action_classes_login_count()
{
web_reg_find("TEXT=className",LAST);
web_url("classes_login_count",
"URL=http://{urlIP}:{port}/dataservice/login/login-stats/classes?periodType={periodType}&date={date}&schoolId={schoolId}&gradeId={gradeId}&order={order}&perPage={perPage}&page={page}",
"Resource=1",
"Referer=",
"Snapshot=t1.inf",
LAST);

return 0;
}

2、并发数固定(20)
3、没有思考时间,没有日志输出,没有任何逻辑

测试结果:
1、刚开始TPS在3000多,慢慢的TPS一路下坡
2、应用服务器的CPU从刚开始的80%左右,也是一路下坡
3、lr测试机的CPU确是一路高歌,最后维持到最高100%

说明:
1、固定并发数20的原因是为了控制应用服务器的cpu占用率,超过20并发时,应用的cpu就到90%以上了
2、测试机的CPU从4个调整到10个,结果也是一样
3、TPS下坡的时候,增加user,可以把TPS拉上来,但是,还是会慢慢下去
4、不是所有的接口都是这个现象,同一个服务内,有的正常,有的不正常
5、测试数据是有限的数据进行循环的,如果是一条数据并发的话,没有这个问题
6、换过测试机,重装LR测试,还是同样的问题

感觉LR发着发着偷懒,不发了,但是为啥发包机的CPU还那么高?

jmeter测试
上面有问题的接口,用jmeter测试(场景都一样),问题不存在,TPS很稳定。

写了那么多,感觉大家会问到的,都说明了吧!各位大拿有没有遇到过?

共收到 8 条回复 时间 点赞

Resource=0
这样应该就行了。

如果正常了,我再来解释。

围观一下

among 回复

谢回!
Resource=0 后还是老样子。

别沉啊!

对应的 日志 有没有异常的?

测试机的CPU从4个调整到10个,结果也是一样

加核数能不能生效不是一定的,要看瓶颈是什么,也许CPU都在忙着处理IO问题呢
感觉LR的controller比较重,建议用分布式,比如4台load agent,每个5并发再看看

还有,看一下TPS掉的时候是不是响应时间变大了,如果是就很正常了,说明LR丝毫没有懈怠,有着持续稳定的压力,相反只能说明JMeter的效率不够(在偷懒),这种情况下,被测应用扩容之后应该二者就没啥差异了

帮楼主猜问题,就算猜错了也就错了,某些杠精请不要来抬杠

兔白小 回复

您指的是哪方面日志?程序方面日志没有异常啊,慢查询也没有。

槽神 回复

上面我发了一个图,图上看TPS下降的时候,响应时间走势变化并不明显。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册