jmeter使用多台linux进行分布式压测

当并发量较大时,由于jmeter本身是由java写的,会受到硬件资源的限制。另外单台压力机,导致达不到100万级TPS的并发量。
因此在并发量较大时,可以考虑jmeter分布式压测,原理图:
在这里插入图片描述

一、Agent节点配置

首先安装好java和jmeter,并配置好环境变量。
然后找到bin/jmeter.properties,取消server.rmi.ssl.disable=false注释,并设置为true(关闭ssl认证)

# Password of Trust store
#server.rmi.ssl.truststore.password=changeit
#
# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true

启动Agent节点,nohup jmeter-server -Djava.rmi.server.hostname=10.201.7.239 &
jmeter-server后面指定Agent ip

nohup jmeter-server -Djava.rmi.server.hostname=10.201.7.239 & 

二、控制机配置

同Agent配置首先安装好java和jmeter,并配置好环境变量。
1、然后找到bin/jmeter.properties,取消server.rmi.ssl.disable=false注释,并设置为true(关闭ssl认证)

# Password of Trust store
#server.rmi.ssl.truststore.password=changeit
#
# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true

2、开配置文件 /bin/jmeter.properties 配置 agent 节点的 IP

# Remote Hosts - comma delimited
remote_hosts=10.201.7.239:1099  #代理机ip和端口,多个用","分隔
#remote_hosts=localhost:1099,localhost:2010

# RMI port to be used by the server (must start rmiregistry with same port)
#server_port=1099 #控制机端口可以修改,某些应用可能会占用控制机1099端口

3、到此控制机和Agent配置完成,开始运行命令,指定agent进行压测

#-R指定Agent进行压测,多个ip用","分隔
jmxx -n -t rec_post_forcast_spark.jmx -R 10.201.7.239  -l ./saprk/spark-5-5-22.jtl  -e -o ./saprk/spark-5-5-22
#或者启动进行压测
jmxx -n -t rec_post_forcast_spark.jmx -r  -l ./saprk/spark-5-5-22.jtl  -e -o ./saprk/spark-5-5-22

参数:

n:非gui运行
t:指定测试脚本
R:指定多少个 agent 启动并参与测试
r: 代表全部 agent 启动并参与测试
l:生成测试结果文件

三、注意事项

  • A、若是脚本中设置的并发线程数是100,采用3台slaver机器去施加压力,那么对于服务端来说,此时的并发线程数是300。

  • B、为了减少出错的可能性,最好按照如下Jmeter 分布式要求:
    1、各个机器在相同目录下安装相同版本的jdk;
    2、各个机器在相同的目录下安装相同版本的jmeter;
    3、配置/etc/hosts的IP和hostname的映射。
    4、修改各个机器的jmeter的默认内存参数,从512m调整为合适大小。

猜你喜欢

转载自blog.csdn.net/a200822146085/article/details/89709395