Jmeter分布式配置

转自:飞测

在使用Jmeter进行性能测试时,在不进行调优的情况下,并发用户数很难突破1000;Jmeter进行调优后,单台并发数可以突破2000。但是如果要支持更大的并发,例如:5000、20000并发,则需要使用Jmeter提供的分布式测试的功能。这里先讲解Jmeter的分布式的部署,后面介绍下高并发下压力机端的调优方法。

一、Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为控制机(master),其它机器作为执行机(slaver)。

建议:使用Windows作为一台master,多台linux作为slaver。要求:slaver服务的jdk和Jmeter版本要一致,避免出现一些疑难杂症^^。

  2、执行时,master会把脚本发送到每台slaver上,slaver 拿到脚本后就开始执行,slaver执行时不需要启动GUI,如果引用到csv等外部的文件,则每台slaver所在的机器都需要相应位置(脚本中可以指定文件路径)手工上传该文件。

  3、执行完成后,slaver会把结果回传给master,master会收集所有slaver的信息并汇总。

二、执行机(slaver)配置:

现在Jmeter在2016年发布新版本3.0,推荐使用此版本,不管是master和slaver都需要安装jdk,需要使用1.7版本及以上jdk。

  1、slaver机上需要安装Jmeter。

  2、如果slaver是在windows下则直接启动bin目录下的:jmeter-server.bat;如果slaver是在liniux下则使用如下命令来启动:nohup ./jmeter-server-Djava.rmi.server.hostname=172.16.xx.xx &

,其中ip为slaver所在的机器的ip。

slaver作为服务端启动了默认端口1099,该端口在jmeter.properties中可以修改,通常不建议修改。

  3、 需要配置多少台就按上面的方法配置多少台。

三、调度机(master)配置:

1、打开Jmeter的bin目录下jmeter.properties文件,修改如下配置IP和Port是slaver机的IP以及默认的1099端口,一下两种配置方法都可以。

  remote_hosts=172.16.xx.xx,172.16.xx.xxx

remote_hosts=172.16.xx.xx:1099,172.16.xx.xxx:1099

      

2、选择远程启动-->远程全部启动:

 

四、高并发下压力机端优化

上面已经实现了Jmeter的分布式测试,但是想要jmeter支持更大的并发,还有一下几点需要注意: 

1.jmeter作为slaver时 jvm调优,修改bin目录下 jmeter 文件,新增如下配置:

JMETER_OPTS="-Xmx2048m -Xms2048m -Xmn256m-XX:PermSize=128m -Xss256k"

ps:此处参数需要灵活调整,例如:Xss大小可以影响jmeter线程数,但是调整太小会导致栈内存溢出。

2.linux系统调优

a. ulimit

  ulimit -a 查看单个进程能够打开的最大文件数,一个socket连接会占用一个文件句柄。临时生效命令 ulimit -n 65535。

b. linux端口数量

/etc/sysctl.conf文件下增加如下配置:

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.ip_local_port_range = 102465535

3.脚本要求

a.“查看结果树”,需要勾选“仅日志错误”。

b.“聚合报告”中小并发(100以内)可以保留;高并发去掉,添加“Simple Data Writer”且保存csv格式数据。

c. 使用CSV输出,不要使用xml格式输出。

d.使用非gui模式,例如 jmeter -n -t test.jmx-l test.jtl

猜你喜欢

转载自blog.csdn.net/weixin_39152648/article/details/85099010
今日推荐