问答 求助:用 Jmeter 压测接口,并发线程从 100 加到 800,TPS 不变

沫沫 · 2021年07月02日 · 最后由 Blaine 回复于 2021年07月06日 · 6708 次阅读

问题描述如标题啦,之前都是单接口压测,这次是按场景压测,一头雾水
补充:
1.Jmeter 是安装在 windows 系统上
2.压的时候线程数从 20 到 100,吞吐量在 5/s 左右,后来又从 100 压到 800,吞吐量还是在 5/s 左右
3.被压服务器 cpu 最高也就去到 53,压到 800 线程的时候才 39%-43%,负载稳定在 1,被压服务器是 4 核的
根据百度到的内容自己排查了一下,服务器带宽、链接数都是够用的,Jmeter 单机并发数有限,但是我才 800 线程,没有到 1000

下面是压测的一些数据图表




补充:


open files (-n) 1000000

共收到 17 条回复 时间 点赞

看看响应时间错误率,有没有超时、连接失败等

yiwang 回复

没有报错,响应时间也可以

那比较诡异,是不是限流了嘿嘿

yiwang 回复

没有限流呢

有验证服务端,是不是有那么多连接数吗,别你这边是加了线程数,实际上服务端连接数都没上去

服务器的带宽够,那测试机的够吗?

MarvinWu 回复

墨妖 回复


是指 ESTABLISHED 吗

沫沫 #10 · 2021年07月02日 Author
墨妖 回复


100 并发以后连接数就没有上去了,请问这个怎么解决?

1.吞吐量控制器的设置可能有问题,导致放出的取样器太少了
2.你的聚合报告为什么那么多登录的请求呢,又不是压登录,登录用仅一次控制器控制好每个用户确保登录,后续请求多分配点比例

沫沫 #12 · 2021年07月03日 Author
RhettXia 回复

控制器的设置按顺序下来是 6%,11%,3%,3%,77%,没有勾选 Per user
不是因为 tcp 连接数没有上去吗?17:35 分,并发数开始加到 200.tcp 连接数一下子从一千多点升到差不多 3 千,但是 200 并发以后,后面跑到最后并发数去到 800,tcp 连接数都一直没有太大的变化

考虑是压测机器的问题吧 感觉服务器没接到那么大的压力 是不是本机带宽被限制了

沫沫 #16 · 2021年07月03日 Author

本机带宽没有被限制......我打算先试下小量用户跑半个小时,再大量用户跑一个小时看看数据对...再不行换 Apachebench 试一下看看

解决了吗?什么原因啊?

沫沫 #16 · 2021年07月03日 Author

我把 Critical Section Controller 禁用后就可以了

沫沫 #17 · 2021年07月03日 Author
沫沫 回复

如果 Critical Section Controller 的锁名称相同,设置了多线程也只能串行执行,无法并发;需要并发的话,锁名称一定要设置成变量,例如后面加个随机数,随机字符串等等

沫沫 关闭了讨论 07月05日 09:08
沫沫 重新开启了讨论 07月05日 09:08

就是限流

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