Jmeter分布式压测简单步骤:
(以下步骤是基于centos的jmeter3.2的步骤,其他jmeter版本可能存在其他配置需要修改。)
- 准备几台机器,如3台机器,一台作为master机器,其他两台作为slave机器。
- 在步骤1中的机器中分别安装相同版本的JDK与Jmeter,并配置环境变量使Jmeter可用。
- 将master与slave机器的jmeter.sh jmeter jmeter-server授予可执行权限
chmod a+x jmeter.sh
chmod a+x jmeter
chmod a+x jmeter-server - 分别在两台slave机器中启动jmeter-server,命令如下:
./jmeter-server - 在master机器中jmeter的bin目录下修改配置文件jmeter.properties中的remote_hosts值,多个机器用逗号分隔,此处配置的是slave机器,配置例子如下:
如:remote_hosts=192.168.1.2,192.168.1.3 - 在master机器中执行 ./jmeter.sh可弹出jmeter图形化界面,将压测脚本放入到master机器上并打开,在jmeter界面的Run目录下,通过点远程启动选择要启动slave机器,也可以选择远程启动所有机器
- 分布式centos-No GUI压测命令:sh jmeter.sh -n -t test.jmx -r -l result.jtl (test.jmx是压测脚本,result.jtl提前自己创建存储压测结果的文件,不会自动创建)–启动所有远程机
- 压测前修改配置,修改系统tomcat的线程数,tomcat/conf下的server.xml文件,具体修改如下:
<Connector port="9010" protocol="HTTP/1.1" connectionTimeout="20000" maxThreads="1000" minSpareThreads="100" maxSpareThreads="500" acceptCount="1500" redirectPort="8443" URIEncoding="UTF-8" relaxedPathChars="|{}[]," relaxedQueryChars="|{}[],"/>
主要是添加了以下配置:
connectionTimeout=“20000”
maxThreads=“1000”
minSpareThreads=“100”
maxSpareThreads=“500” acceptCount=“1500”
9. centos分布式压测中遇见问题及解决方法如下:
压测接口出现大量一下报错:
Non HTTP response message: 无法指定被请求的地址 (Address not available)
参照网上解决方案,修改如下tcp相关配置后问题解决:
-----查看tcp端口
[root@3 ~]# cat /proc/sys/net/ipv4/ip_local_port_range
32768 60999
----修改tcp超时等配置
[root@0 ~]# echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
[root@0 ~]# echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
[root@0 ~]# echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
—执行以下命令使其以上修改立即生效
[root@0 ~]# sysctl -p
小提示:master机器与slave机器最好保证同网段,避免分布式压测中出现意想不到的问题!!且最好关闭服务器的防火墙