Linux环境下分布式压测

一 分布式压测目的及原理
使用分布式压测目的:按照一般施压机配置,jmeter的GUI模式下(Windows),当并发用户数过大时会导致试压机资源消耗过量而卡死。为了模拟业务场景,需要模拟高并发请求,这个时候单台压力机就显得有心无力。针对这个情况,jmeter的解决方案是支持分布式压测,即将大量模拟并发分配给多台施压机,来满足高并发请求场景。

分布式压测原理:压测过程一台做为Master,通过命令行将压测脚本分发给所有 Slave机,Slave机模拟用户向服务器发送请求,执行完成后并把结果传给Master,Master 收集所有 Slave 的结果并汇总成一个结果集。

二 搭建压测环境
1.配置Master环境
1).在Master上配置jdk环境并配置环境变量
验证java环境变量:java -version
Linux环境下分布式压测_第1张图片
2)在Master上配置jmeter环境并配置环境变量
验证jmeter环境变量:jemter -v
Linux环境下分布式压测_第2张图片
若提示无权限:
执行命令:chmod +x +路径,即可赋予jmeter权限
Linux环境下分布式压测_第3张图片
3)进入jmeter中bin目录,修改jmeter.properties,找到关键字remote_hosts,配置负载机ip+端口,remote_hosts=ip1:1099,ip2:1099,…并保存。(jmeter的默认端口是1099,本次压测是4台Slave机器)
Linux环境下分布式压测_第4张图片
2.配置Slave环境

  1. 在每台Slave上配置jdk环境并配置环境变量并验证是否配置成功。
  2. 在每台Slave上配置jmeter环境并配置环境变量并验证是否配置成功。
  3. 分别进入Slave的jmeter中bin目录,修改jmeter.properties,server.rmi.ssl.disable=true,httpclient.timeout=1000,并保存。
    Linux环境下分布式压测_第5张图片
    4)./jmeter-server启动jmeter ;
    在这里插入图片描述
    三.执行命令及分析压测结果
    1.前提:
    1)Master上已上传脚本文件和参数化文件;
    2)Slave上参数化文件要放在jmeter的bin目录下;
    3)Slave 上 启动 ./jmeter-server;
    2.在Master上执行分布式压测命令;
    1)jmeter -n -t /…/test.jmx -r -l /…/ test.jtl -e -o /…/test (若压测脚本中虚拟用户数设置的是100,分布式环境有4台slave机器,实际对服务器的请求数是100*4=400)
    Linux环境下分布式压测_第6张图片
    2)压测完成后下载Master上对应路径中.jtl或者html文件并分析压测结果。

3.稳定性压测(压测时间为48h),一般后台运行脚本
1)Slave上执行 nohup ./jmeter-server &
2)Master上执行 nohup jmeter -n -t /…/test.jmx -r -l /…/test.jtl -e -o /…/test &
3)查看日志:tail -f nohup.out

你可能感兴趣的:(性能测试,分布式,jmeter)