jmeter分布式集群
分布式压测操作流程:
- 统一controller机和agent机的jmeter版本及jdk版本
- 配置JMETER_HOME的环境变量
- 修改controller机上的配置文件
目录位置:/apache-jmeter-5.1.1/bin/jmeter.properties
文件位置:修改【Remote hosts and RMI configuration】部分的【remote_hosts】
默认为remote_hosts=127.0.0.1,及本机执行脚本;
若需分布式执行,则把‘127.0.0.1’修改为执行机器的ip+port;
若有多台执行机器,则依次写到后边,用英文逗号隔开,如‘1.1.1.1:1099,2.2.2.2:1099,…’
若1099端口被占用,则修改为其他端口,并修改remot_hosts的ip端口。
文件位置:修改【server.rmi.ssl.disable】
默认为 # server.rmi.ssl.disable=false;
若远程执行报ssl错误,则将其修改为server.rmi.ssl.disable=true
目录位置:/apache-jmeter-5.1.1/bin/system.properties
文件位置:在最后一行插入下行
java.rmi.server.hostname=192.168.120.1 - 修改agent机上的配置文件
目录位置:/apache-jmeter-5.1.1/bin/jmeter.properties
文件位置:修改【server.rmi.ssl.disable】
默认为 # server.rmi.ssl.disable=false;
若远程执行报ssl错误,则将其修改为server.rmi.ssl.disable=true
目录位置:/apache-jmeter-5.1.1/bin/system.properties
文件位置:在最后一行插入下行
java.rmi.server.hostname=192.168.120.1 - 打开agent机器的jmeter-server.bat或jmeter-server,等待controller机的执行命令;
- controller机执行脚本
GUI模式:jmeter–>打开脚本–>运行–>远程启动所有或启动某个节点
非GUI模式:jmeter.bat -n -t -r -l
服务器端监控(nmon)
- 下载安装
nmon安装包:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
nmon_analyser工具:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser - 检查服务器系统版本
cat /etc/redhat-release - 配置nmon
- nmon_x86_64_centos7上传到服务器
- 赋予权限:chmod 777 nmon_x86_64_centos7
- 数据采集
- 采集5分钟:./ nmon -f -t -s 30 -c 10 -->> 生成.nmon文件
n -f:按标准格式输出文件:_YYYYMMDD_HHMM.nmon;
n -t:输出中包括占用率较高的进程;
n -s 30:每30秒进行一次数据采集
n -c 180:一共采集180次 - 将nmon结果文件转换为csv文件
sort -A nmon _090308_1313.nmon > nmon _090308_1313.csv - 把CSV文件下载到Windows本地
- 打开nmon_analyser并加载CSV文件 -->> 生成图表
端口耗尽的问题
1、 调低端口释放后的等待时间, 默认为60s, 修改为15~30s
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
2、 修改tcp/ip协议配置, 通过配置/proc/sys/net/ipv4/tcp_tw_resue, 默认为0, 修改为1, 释放TIME_WAIT端口给新连接使用。
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
3、 修改tcp/ip协议配置,快速回收socket资源, 默认为0, 修改为1.
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
问题—》服务器防火墙
telnet 10.91.0.125 1099 1
Trying 10.91.0.125…
telnet: connect to address 10.91.0.125: Operation timed out
telnet: Unable to connect to remote host