为什么要用分布式
大家在使用jmeter压测过程中,可能会度遇到内存溢出的错误,这是为什么呢?
因为jmeter是java写的应用,java应用jvm堆内存heap受负载机硬件限制,虽然我们可以调整堆内存大小,
但是单机无法支撑数以万计大并发,此时,需要多个负载机进行分压测试,这样性能瓶颈就不会是我们的负载机了。
分布式的原理
jmeter分布式压测时,选择其中一台作为控制机,其余的机器做为负载机,
执行时,控制机会把脚本发送到每个负载机上,负载机获取到脚本就执行脚本(负载机只需要启动jmeter-server.bat或者jmeter-server),
执行后,负载机回传执行结果给控制机,控制机会进行汇总。值得注意的是:如果请求执行成功,不会回传请求的响应信息,所以在查看结果树中, 响应结果看到是空的。
原理图(截图自官网)
看不懂英文的自己翻译哦,看懂了,少踩坑。
保证控制机和负载机上jdk、jmeter版本一样,否则会出一些意外的问题,
关闭防火墙:service iptables stop
可以先看防火墙状态,如果是关闭的,就不用管了。
另外,网上说的,默认情况下,RMI为JMeter服务器引擎使用动态端口。这可能会导致防火墙出现问题,因此您可以定义JMeter属性server.rmi.localport来控制此端口号(但是我没遇到这个问题)。
分布式环境搭建说明
由于机器数量的原因&#