性能测试工具 jmeter 负载压测

xuewuhe · 2020年08月28日 · 最后由 xuewuhe 回复于 2020年09月11日 · 3129 次阅读

jmeter slave 运行时将 result 返回给 master 为什么是同步的,设计时为什么不结束之后再传给 master?还有这块代码再源码的哪个类哪个方法里,知道的大佬,麻烦告知下,谢谢

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 11 条回复 时间 点赞

你本机跑的时候结果为啥是同步的,不是跑完再一起给你?需要实时查看结果定位问题,一样的道理啊,为什么不要同步呢。就像 linux 下后台跑压测脚本,也是把压测结果实时插入到 jtl 中。

余生 回复

gui 运行返回结果,那是 view result tree 元件的作用。在非 gui 运行时,是不需要这个元件的。而非 gui 运行,实时写入 jtl 结果,这样会导致压测的时候网络带宽占用过高,浪费带宽资源,降低 jmeter 的并发能力

如果你需要实时看结果,请考虑使用 influxdb+grafana 的方式实时查看

xuewuhe 回复

不明白为啥说带宽占用会过高?这个回传只是个很简单的数据回传,对带宽的占用比压测要低得多吧。

而且都用上 slave 了,想要提高并发能力直接增加 slave ,解决成本不是比改造这里更低,也更有效?

大佬你最近在研究啥

7楼 已删除

设计时为什么不结束之后再传给 master?
回答:就是为了实时看到压测结果,即便是非 gui 运行,脚本也会打印实时结果的,这个结果相当于是汇总的。

还有这块代码再源码的哪个类哪个方法里,知道的大佬,麻烦告知下,谢谢
回答:非大佬。本身是使用 rmi 的方式调用的,没有什么特殊类或者方法来做回传的事情。
org.apache.jmeter.engine public class DistributedRunner 去看看这里的代码,最终的 engine 也是 StandardJMeterEngine。

这样会导致压测的时候网络带宽占用过高
回答:这个不想解释为什么,懂的人自然懂。要修改这个问题,必然对 Jmeter 进行大的修改。

Wan 回复

首先声明,非大佬。最近研究 jmeter 负载压测的时候,master 机器的 jtl 文件是实时打印结果数据的,这就非常让我纳闷,为啥不压测结束之后回传 master?

zyanycall 回复

仔细看了下代码,remoteJmeterEngine 确实实现了 rmi 协议,这样就非常苦恼了,不怎么好下手了

jacksboy 回复

不是这个需求,我是想看看 master 和 slave 之间关于压测结果传输的问题

陈恒捷 回复

压测是 slave 负责实施,但是中心节点负责监听和结果的搜集,每秒上千的 tps 或者更高的话,中心节点会有带宽瓶颈的,一旦网络受阻,那每个 slave 压测会收到影响的

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