分布式压测

什么是分布式压测

  1. 普通压测:单台机可以对目标机器产生的压力比较小,受限因素包括CPU,网络,IO等

  2. 分布式压测:利用多台机器向目标机器产生压力,模拟几万用户并发访问

                    

Jmeter分布式压测原理

 

  1. 总控机器的节点master,其他产生压力的机器叫“肉鸡” server
  2. master会把压测脚本发送到 server上面
  3. 执行的时候,server上只需要把jmeter-server打开就可以了,不用启动jmeter
  4. 结束后,server会把压测数据回传给master,然后master汇总输出报告
  5. 配置详情

              

 

阿里云Linux服务器压测接口实战

SpringBoot 接口打包,并用jar包方式部署
    在cmd项目根目录打包:mvn package && java -jar target/gs-spring-boot-0.1.0.jar

部署java项目到阿里云服务器和守护进程讲解

  1. 关闭防火墙:阿里云控制台安全策略,开放端口
  2. linux上运行 java -jar xxxx
  3. 守护进程:nohup java -jar xxxxx &
  4. ssh root@120.79.160.143


阿里云Linux服务器安装Jmeter 4.0

  1. 经济足够:购买两台阿里云机器
  2. 不足:本地虚拟机,或者用你室友的电脑,在同个局域网就可以,安装同个版本的jdk,jmeter,同个路径,不要带有空格或者中文
  3. 新建目录jmeter,下载地址:wget http://apache.osuosl.org//jmeter/binaries/apache-jmeter-4.0.tgz
     

Jmeter非GUI界面 参数讲解

压测命令示例:jmeter的bin目录下执行下面命令进行压测

  1. jmeter -n -t linux_users_api.jmx -l result.jtl -e -o /usr/local/softwate/jmeter/temp/ResultReport
  2. jmeter -n -t /Users/jack/Desktop/linux_users_api.jmx -l result.jtl -e -o /Users/jack/Desktop/person/jmeter/temp

参数讲解:

  1. -h 帮助
  2. -n 非GUI模式
  3. -t 指定要运行的 JMeter 测试脚本文件
  4. -l 记录结果的文件 每次运行之前,(要确保之前没有运行过,即xxx.jtl不存在,不然报错)
  5. -r Jmter.properties文件中指定的所有远程服务器
  6. -e 在脚本运行结束后生成html报告
  7. -o 用于存放html报告的目录(目录要为空,不然报错)

官方配置文件地址 http://jmeter.apache.org/usermanual/get-started.html

在阿里云服务器上以非GUI界面去执行JMX压测脚本

jmx目录:/usr/local/software/jmeter/temp,在本地用界面化生成JMX脚本,给权限:chmod 777 user.jmx
jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl 

阿里云Linux服务器 Jmeter压测实战之jtl文件生成和查看

  1. 利用软件从阿里云Centos服务器下载压测报告
  2. 可以通过打开jmeter,新建线程组->summary report->浏览文件 进行查看

Jmeter压测接口的性能优化

  1. Jmeter压测减少资源使用的一些建议,即压测结果更准确
  2. 使用非GUI模式:jmeter -n -t test.jmx -l result.jtl
  3. 少使用Listener, 如果使用-l参数,它们都可以被删除或禁用。
  4. 在加载测试期间不要使用“查看结果树”或“查看结果”表监听器,只能在脚本阶段使用它们来调试脚本。    
  5. 包含控制器在这里没有帮助,因为它将文件中的所有测试元素添加到测试计划中。]
  6. 不要使用功能模式,使用CSV输出而不是XML
  7. 只保存你需要的数据,尽可能少地使用断言
  8. 如果测试需要大量数据,可以提前准备好测试数据放到数据文件中,以CSV Read方式读取。
  9. 用内网压测,减少其他带宽影响压测结果
  10. 如果压测大流量,尽量用多几个节点以非GUI模式向服务器施压

官方推荐 :http://jakarta.apache.org/jmeter/usermanual/best-practices.html#lean_mean

把Jmtere压测结果转换为Html

指令:jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl -e -o /usr/local/software/jmeter/temp/result

压测报告 html里面Dashboard的核心指标

1)Test and Report informations

  1.     Source file:jtl文件名
  2.     Start Time :压测开始时间
  3.     End Time :压测结束时间
  4.     Filter for display:过滤器
  5.     Lable:sampler采样器名称    

2)APDEX(Application performance Index)

  1.     apdex:应用程序性能指标,范围在0~1之间,1表示达到所有用户均满意
  2.     T(Toleration threshold):可接受阀值
  3.     F(Frustration threshold):失败阀值

3)Requests Summary

  1.     OK:成功率
  2.     KO:失败率

4)Statistics 统计数据

  1.     lable:sampler采样器名称
  2.     samples:请求总数,并发数*循环次数
  3.     KO:失败次数
  4.     Error%:失败率
  5.     Average:平均响应时间
  6.     Min:最小响应时间
  7.     Max:最大响应时间
  8.     90th pct: 90%的用户响应时间不会超过这个值(关注这个就可以了)
  9.     2ms,3ms,4,5,2,6,8,3,9
  10.     95th pct: 95%的用户响应时间不会超过这个值
  11.     99th pct: 99%的用户响应时间不会超过这个值 (存在极端值)
  12.     throughtput:Request per Second吞吐量 qps
  13.     received:每秒从服务器接收的数据量
  14.     send:每秒发送的数据量

压测报告 html里面Charts的核心指标

 1)Over Time(随着时间的变化)

  1.     Response Times Over Time:响应时间变化趋势
  2.     Response Time Percentiles Over Time (successful responses):最大,最小,平均,用户响应时间分布
  3.     Active Threads Over Time:并发用户数趋势
  4.     Bytes Throughput Over Time:每秒接收和请求字节数变化,蓝色表示发送,黄色表示接受
  5.     Latencies Over Time:平均响应延时趋势
  6.     Connect Time Over Time    :连接耗时趋势

2)Throughput

  1.     Hits Per Second (excluding embedded resources):每秒点击次数
  2.     Codes Per Second (excluding embedded resources):每秒状态码数量
  3.     Transactions Per Second:即TPS,每秒事务数
  4.     Response Time Vs Request:响应时间和请求数对比
  5.     Latency Vs Request:延迟时间和请求数对比

3)Response Times

  1.     Response Time Percentiles:响应时间百分比
  2.     Response Time Overview:响应时间概述
  3.     Time Vs Threads:活跃线程数和响应时间
  4.     Response Time Distribution:响应时间分布图

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter分布式压测是使用多台计算机同时执行JMeter测试计划,以模拟大量并发用户的压力。使用分布式压测可以有效提高负载能力,并避免单台机器的性能限制。在分布式压测中,一个JMeter主控节点负责管理所有的测试计划和生成结果报告,而多个JMeter工作节点则同时执行测试计划,并将结果返回给主控节点进行统计和分析。 要进行JMeter分布式压测,需要进行以下步骤: 1. 配置JMeter主控节点:在主控节点上,设置一个JMeter测试计划,并将其配置为分布式测试模式。在测试计划中,设置各个线程组、取样器和监听器等测试元素,以模拟真实的用户行为。 2. 配置JMeter工作节点:在每个工作节点上,安装并配置JMeter,并确保与主控节点在同一局域网中。工作节点需要拥有相同的测试计划文件和测试数据。 3. 启动主控节点:在主控节点上启动JMeter,并开始压测。主控节点会将测试计划和相关配置发送给各个工作节点,并收集并分析结果。 4. 启动工作节点:在每个工作节点上启动JMeter,并连接到主控节点。工作节点会接收主控节点发送的测试计划和相关配置,并执行测试计划。 5. 监控和分析结果:在压测过程中,可以通过主控节点的监听器查看实时结果,并在压测结束后生成详细的报告进行分析。 以上是JMeter分布式压测的基本流程。通过合理配置和管理分布式压测环境,可以更好地模拟真实的用户场景,评估系统的性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值