性能常识 【不懂就问】关于 jmeter 中阶梯加压插件 Stepping Thread Group 使用问题(分布式压测貌似不支持),欢迎大家一起讨论

Hao123 · 2022年11月08日 · 最后由 我去炒饭 回复于 2022年11月10日 · 6860 次阅读

1.分布式阶梯压测截图:4 台压测机 1 台控制机,选用这个 Stepping Thread Group 插件使用,线程设置 100,如果按照正常理解:分布式测试时,总线程=100*4,那么 Active Threads Over Time 这个插件中看到的线程数应该是 400 才对,现在是 100。所以想问问大家, stepping thread group 插件是不是只适用于单客户端进行阶梯式压测,不适合分布式压测。因为当用于分布式压测时,管控机的控制台只能显示单个客户端的测试结果,而不是汇总起来。
2.如果分布式确实不支持这个插件的话,那请问广大朋友们,如果要用分布式压测 还有其他好的方法吗?是不是只有按普通模式,加正常的线程组,然后设置不同的线程数 + 同步定时器去测?

运行 5 分钟后压测截图(吞吐量,tps 都比较低):

单台压测机,使用阶梯加压插件(由于报错太多,没跑够 5 分钟):
测试截图:




出现这个报错:java.net.BindException: Address already in use: connect
已经按照百度方法把注册表中的 MaxUserPort,value:65534(十进制)–> 设置最大连接数 65534;TCPTimedWaitDelay,value:30(十进制)–> 设置为 30 秒,默认是 240 秒;重启电脑后,还是会出现此报错(也不知道还有什么原因会导致了)

共收到 20 条回复 时间 点赞

帮顶一下,分布式压测用得比较少,不大好解答。

建议你在 Linux 上去压测,Jmeter 在 Windows 下对于端口的回收是存在问题的。我也之前也遇到过。你可以用 netstat 观察下,会有比较多的 time_wait。放在 Linux 上就好了。

另外 ,Windows 的可用端口也没有 65535 那么多。

不懂就问:分布式部署时脚本设置线程组或者说压力是预设值 * 压测机个数吗?

啥是分布式压测?有点迷糊,如果把被压测的服务器看成一个整体,分布式压测的意思是不是多台 “发压机” 去压同一个服务暴露出来的 ip 地址才叫分布式压测?

阶梯压测不支持分布式

瞎回答一下:会不会是 jmeter 这个显示就只代表本机的数据,我记得好像是在压测结束后,slave 才会把数据统一返回和 master 去做分析。试想一下,作为 master 自己既要压测干活,还要在压测的时候接受 slave 的数据信息去处理,其实是干不过来的。

对,比如压测 2000 线程,如果分布式有 2 台压测机,就需要在主控机上线程设置 1000 就可以了。1000*2,然后远程启动所有

Hao123 #13 · 2022年11月09日 Author
CKL的思考 回复

行,我到时试试,之前刚让把 linux 服务器改了几台成 window 专门用来压测😂

Hao123 #12 · 2022年11月09日 Author
我去催饭 回复

采用分布式的目的是为了在压测的过程中,确保压力机不会出现性能瓶颈比如由于线程多,单台 jmeter 压测时容易死机或者多次卡顿,cpu 占用高等情况,当出现性能瓶颈进行性能分析时,不需要考虑压力机是否会导致性能瓶颈的主要原因之一。所以就采用多台相同环境的压测机一起去压被测服务器

Hao123 #11 · 2022年11月09日 Author
hope1 回复

我看的也像不支持,那如果分布式压测,有好的办法去阶梯加压吗?还是就用普通线程慢慢增加线程数去测?

Hao123 #10 · 2022年11月09日 Author
王稀饭 回复

我主控机和压测机是分开的,控制机只用来编写脚本和收集负载机的压测结果。如果用普通线程组模式能看出是分布式操作,但是用这个阶梯加压插件,走势就只能看出是单台压测机的

Hao123 回复

发压机器自己还会卡顿?没有遇到过呐

我去催饭 回复

并发量大的时候就会卡了,我上次试过单机 5000 并发,jmeter 直接卡的不动,需要强制关闭

jmeter 的话使用 Concurrency Thread Group 这个吧,比较好使

windows 适合用来调试脚本和查看结果,不太适合直接用来压测,建议先把压测机换成 linux,然后确认一下大概能够支持的最大线程数是多少,在根据场景选择压测方式,不一定非要用分布式

从机的 Stepping Thread Group 插件装了么。分布式压测是将整个脚本的 HashTree 推到从机

Hao123 回复

试试 rps

大林 回复

装了,这几台电脑的 jmeter 包都是直接复制粘贴过去的,所有配置及下载的插件安装都一模一样

jmeter 的压测机和控制机在同一网段,电脑的性能和配置都一致,那建议是在 linux 还是 window 上压测?由于运维帮我改了几台 window 服务器专门用来压测的,且这几台电脑环境配置都弄完了,如果再到 linux 下载安装,感觉还挺麻烦的😂
或者我用 window 非 gui 模式压测也可以,用 grafana 进行监控,大家觉得可行吗?

可以试试这个线程组 bzm - Concurrency Thread Group

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