当前位置: 首页 > news >正文

分布式集群压测+grafana+influxdb+Prometheus详细步骤

服务器测试的核心类型:
性能测试:评估响应时间、吞吐量(如TPS/QPS)、资源利用率(CPU/内存)
安全测试:模拟SQL注入、DDoS攻击等,验证防御机制。
可用性测试:检测系统持续服务能力(如故障切换、容灾恢复)。
负载测试、压力测试、大量数据测试的区别:
压力测试:施加远超正常负载(如10倍流量),探测系统崩溃点及恢复能力‌。
负载测试:模拟正常业务流量(如日活用户并发),验证系统在预期负载下的稳定性‌。
关键指标解析:
tps(每秒事务数):直接反应系统处理能力,值越高性能越优。
响应时间:用户请求到收到响应的耗时,合格线通常小于等于3秒。
错误率:压测中失败占比,一般小于0.5%。。
资源瓶颈:cpu大于70%,内存大于80%预示着要扩容。

  1. 性能测试核心流程
    1.需求分析(业务指标转换技术指标、制定压测场景)----环境准备(独立测试环境配置,检验生产环境按1:4缩容,监控体系prometheus+Grafana的搭建)----脚本开发(参数化、关联、设置集合点)----测试执行(阶梯加压策略,异常注入测试)----结果分析(定位瓶颈并优化)
    JMeter分布式压测配置示例:
    控制机的功能:脚本分发,结果聚合;控制机的资源要求:低cpu消耗,高网络带宽
    压力机功能:实际产生负载;压力机资源要求:高cpu和高内存配置。
    通信机制:
    ‌RMI协议‌:默认端口1099(需确保防火墙开放)
    ‌数据流‌:控制机→发送指令→压力机→返回采样数据
    压力机配置:

修改jmeter.properties

server_port=1099 # RMI通信端口
server.rmi.ssl.disable=true # 关闭SSL加密提升性能
remote_hosts=127.0.0.1:1099 # 默认本地,实际替换为压力机IP

启动压力服务(需指定本机IP)

jmeter-server -Djava.rmi.server.hostname=192.168.1.101
关键参数验证‌:
telnet 192.168.1.101 1099 # 控制机测试连通性
控制机配置:

修改jmeter.properties

remote_hosts=192.168.1.101:1099,192.168.1.102:1099 # 多台用逗号分隔
mode=Standard # 标准模式收集详细数据

启动测试(非GUI模式)

jmeter -n -t test_plan.jmx -l result.jtl -R 192.168.1.101,192.168.1.102或在bin目录下(脚本也在bin目录下)进入cmd界面运行命令:jmeter -n -t test_plan.jmx -l result.jtl -e -o report -r
常见问题解决方案:
1.连接拒绝错误:Connection refused to host: x.x.x.x
处理步骤:
检查压力机jmeter-server进程是否运行
验证防火墙规则:iptables -L -n | grep 1099
确认IP绑定正确:hostname -i显示IP需与配置一致
2.结果数据缺失的排查方案:
在控制机添加监听器:View Results Tree
检查压力机日志:jmeter-server.log中的ERROR条目
3.关闭防火墙或者开启权限
systemtcl stop firewall.server #关闭防火墙命令
chmod -R 777 apache-jmeter-5.6.3#不能执行,开启权限命令
Jmeter组件的应用:
事物控制器:聚合业务流,比如用来统计跨接口事物成功率。
吞吐量定时器:精准控制RPS,统计RPS需要多少并发线程。公式:线程数=RPSx平均响应时间
BeanShell后置:动态参数处理,比如用来处理加密接口。

Grafana+Influxdb+Prometheus监控结果及服务器资源
Grafana+Influxdb实时监控运行结果
grafana是可视化的图形展示平台
下载安装------启动服务(systemctl restart grafana-server)----关闭防火墙(systemctl stop firewalld.service)—浏览器访问:安装ip地址:3000 用户名和密码:admin
influxdb时序数据库:Jmeter将测试指标实时写入Influxdb,grafana从Influxdb中拉取数据,生成实时监控仪表盘
下载安装—启动服务(influxd &)----进入数据库(influx)
influxQL语句:
show databases;显示有哪些数据库
create database jmeterData;创建数据库保存jmter压测的数据
use jmeterData;使用数据库
show measurements;展示表
使用后端监听器把jmeter执行的数据写入到influxdb进行保存
在这里插入图片描述
influxdb中的数据加载到grafana中,通过grafana自动显示数据。
在浏览器中访问“安装ip地址:3000”,设置数据源+仪表盘
grafana+Prometheus监控服务器资源
需要在服务器中安装数据收集器node_exporter,然后Prometheus拉取收集器的数据通过grafana进行展示。
安装node_exporter:下载node_exporter压缩包上传到服务器进行解压------进入位置后启动服务(./node_exporter &),默认端口9100----浏览器中验证是否开启(http://安装node_exporter的ip地址:9100)
安装Prometheus:下载包传到安装位置解压----修改配置文件(Prometheus.yml)-----启动Prometheus服务,默认端口9090(./prometheus &)------去浏览器打开:(https://安装Prometheus的ip地址:9090)-----通过grafana自动展示数据(去grafana中设置数据源+仪表盘选12633)

注意:
1.node_exporter必须安装在需要监控的服务器上。
2.grafana建议安装在独立服务器上或与测试无关的机器上,避免占用被测系统,influxdb可安装在grafana安装的服务器上或独立服务器上,prometheus可安装在目标服务器上或grafana安装的服务器上。
3.Prometheus.yml的配置内容
-job_name:“node_exporte”
static_configs:
-targets:[“安装node_exporte的ip地址:9100”]

面试题:
1.性能测试中没有文档如何测试?
答:第一步抓取生产流量;第二步按二八原则聚焦核心接口;第三步基于历史故障补充异常流

http://www.dtcms.com/a/342607.html

相关文章:

  • 详细说明http协议特别是conten-length和chunk编码,并且用linux的命令行演示整个过程
  • Python读取和设置PNG图片的像素值
  • 软件漏洞扫描的测试内容(二)
  • DzzOffice V2.3.7 核心功能升级与关键问题修复,体验全面优化!
  • 计算机网络-1——第一阶段
  • 【苹果软件】Prism Mac 9.4苹果系统免费安装包英文版 Graphpad Prism for Mac 9.4软件免费下载与详细图文教程!!
  • UGUI源码剖析(12):实战演练——从零构建一个健壮的Gradient顶点特效
  • 虚幻基础:目标值之间的过渡
  • 数字货币发展存在的问题:交易平台的问题不断,但监管日益加强
  • C++ string类(c_str , find和rfind , npos , find_first_of)
  • DeepSeek V3.1正式发布,专为下代国产芯设计
  • 【LeetCode 热题 100】322. 零钱兑换——(解法二)自底向上
  • 2025年物流大数据分析的主要趋势
  • 血缘元数据采集开放标准:OpenLineage Dataset Facets
  • Python-Pandas GroupBy 进阶与透视表学习
  • 如何用算力魔方4060安装PaddleOCR MCP 服务器
  • 实现自己的AI视频监控系统-第一章-视频拉流与解码3
  • JavaWeb前端03(Ajax概念及在前端开发时应用)
  • Windows下,将本地视频转化成rtsp推流的方法
  • 高效处理NetCDF文件经纬度转换:一个纯CDO驱动的Bash脚本详解
  • GitHub 热榜项目 - 日榜(2025-08-21)
  • 009.Redis Predixy + Sentinel 架构
  • 深度卷积神经网络AlexNet
  • 【NVIDIA-B200】生产报错 Test CUDA failure common.cu:1035 ‘system not yet initialized‘
  • Docker 搭建 Gitlab 实现自动部署Vue项目
  • NW755NW776美光固态闪存NW863NX595
  • 【永洪BI】报告脚本-JavaScript使用【完整版】
  • Vue 项目中父子传值使用Vuex异步数据不更新问题
  • Postman来做API安全测试:身份验证缺陷漏洞测试
  • 药品追溯码(溯源码)采集系统(二):门诊发药后端