news 2026/5/2 14:36:53

第2节:项目性能优化(中)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第2节:项目性能优化(中)

Jmeter插件使用

首先我们安装完插件配置后,要在插件中心安装这两个插件

下载成功后出现以下结果:

响应时间

  • 响应时间:jp@gc - Response Times Over Time

活动线程数

  • 活动线程数:jp@gc - Active Threads Over Time

每秒事务数

  • 每秒事务数:jp@gc - Transactions per Second

  1. RT(响应时间)
    • 平均值:332ms
    • P50(中位数):8ms 内
    • P90:514ms 内
    • P95:1051ms 内
    • P99:6797ms 内
    • 最小值:2ms
    • 最大值:35s
  1. 压力机活动线程数
    • 代表压测过程中施加的压力情况
  1. TPS(每秒事务数)
    • 数值越大,性能越好
  1. QPS(每秒查询数量)
    • 数值越大,性能越好
    • (TPS >= QPS)
  1. 吞吐量(每秒请求数量)
    • 数值越大,性能越好

压测监控平台

压测平台架构图:

Docker环境配置

首先我们需要配置docker环境

# 1.更新yum包 sudo yum update -y # 2.安装软件包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 3.设置yum源为阿里云 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 4.安装docker sudo yum install docker-ce # 5.检查docker版本 docker -v

安装InfluxDB

# 1.下载镜像 docker pull influxdb:1.8 # 2.启动容器 docker run -d --name influxdb -p 8086:8086 -p 8083:8083 influxdb:1.8 # 3.进入容器创建jmeter数据库 docker exec -it influxdb /bin/bash

操作influxDB

# 进入操作界面 influx # 创建数据库 create database jmeter # 查看数据库是否创建成功 show databases

创建完的结果为

Connected to http://localhost:8086 version 1.8.10 InfluxDB shell version: 1.8.10 > create database jmeter > show databases name: databases name ---- _internal jmeter >

使用influxDB

# 使用jmeter库 use jmeter # 查询数据库中的数据 select * from jmeter

设置Jmeter脚本后置监听器

  • influxdbUrl:需要改为自己influxdb的部署ip和映射端口,我这里是部署在阿里云服务器,所以就是47.93.59.248,口是容器启动时映射的8086端口,db后面跟的是刚才创建的数据库名称
  • application:可根据需要自由定义,只是注意后面在 grafana 中选对即可
  • measurement:表名,默认是 jmeter ,也可以自定义
  • summaryOnly:选择true的话就只有总体的数据。false会记录总体数据,然后再将每个transaction都分别记录
  • samplersRegex:样本正则表达式,将匹配的样本发送到数据库
  • percentiles:响应时间的百分位P90、P95、P99
  • testTitle:events表中的text字段的内容
  • eventTags:任务标签,配合Grafana一起使用

然后我们启动压测工具,再查看数据库表,发现出现以下结构

安装Grafana

# 1.下载Grafana镜像 docker pull grafana/grafana # 2.启动Grafana容器 docker run -d --name grafana -p 3000:3000 grafana/grafana

访问连接:http://guslegend:3000/login,默认用户名/密码:admin/admin

选择添加数据源

导入模版

  • 直接输入模版id号;
  • 上传模版json文件;
  • 输入模版json内容;

在Grafana的官网找到我们需要的展示模板

  • Apache JMeter Dashboard
    • dashboad-ID:5496
  • JMeter Dashboard(3.2 and up)
    • dashboad-ID:3351

启动压测工具,查看结果

安装node_exporter

# 下载 wget -c https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz # 解压 tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /usr/local/hero/ # 启动 cd /usr/local/hero/node_exporter-0.18.1.linux-amd64 nohup ./node_exporter > node.log 2>&1 &

安装Prometheus

# 下载 wget -c https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz # 解压 mkdir /usr/local/hero/ tar zxvf prometheus-2.15.2.linux-amd64.tar.gz -C /usr/local/hero/ cd prometheus-2.15.2.linux-amd64 # 运行 nohup ./prometheus > prometheus.log 2>&1 &

配置prometheus.yml文件

# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'hero-Linux' static_configs: - targets: ['172.17.0.1:9100','172.17.0.1:9100','172.17.0.1:9100']

访问:http://guslegend:9090/graph

在Grafana中配置Prometheus的数据源

导入Linux系统dashboard

  • Node Exporter for Prometheus Dashboard EN 20201010
    • dashboard-ID: 11074
  • Node Exporter Dashboard
    • dashboard-ID: 16098

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 11:48:50

影刀RPA一键处理Zozone达人合作订单,效率飙升1000%![特殊字符]

影刀RPA一键处理Zozone达人合作订单&#xff0c;效率飙升1000%&#xff01;&#x1f680;还在手动处理达人订单&#xff1f;每天重复核对信息、确认佣金、更新状态&#xff0c;耗时耗力还容易算错钱&#xff1f;今天带你用影刀RPA打造达人订单智能处理机器人&#xff0c;1000个…

作者头像 李华
网站建设 2026/5/1 8:24:14

数据结构与算法基础:时间复杂度、存储结构与链表操作详解

数据结构与算法基础&#xff1a;时间复杂度、存储结构与链表操作详解 在学习数据结构与算法的过程中&#xff0c;理解基本概念是构建扎实编程能力的关键。本文将围绕以下四个核心知识点展开讲解&#xff1a; 算法的时间复杂性与问题规模的关系顺序存储结构的定义与特点数据结构…

作者头像 李华
网站建设 2026/4/29 21:46:54

118. 杨辉三角

已解答 简单 相关标签 premium lock icon 相关企业 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示…

作者头像 李华
网站建设 2026/4/30 18:46:55

【收藏】Agentic AI六大设计模式全解析:从小白到大神的进阶指南

本文深入解析了Agentic AI的六大核心设计模式&#xff1a;ReAct Agent(推理与行动双螺旋)、CodeAct Agent(代码即行动语言)、Modern Tool Use(MCP工具协议)、Self-Reflection(自我评估改写)、Multi-Agent Workflow(多角色协作)和Agentic RAG(智能体增强检索)。文章详细阐述了各…

作者头像 李华
网站建设 2026/5/1 3:28:06

小程序毕设项目推荐-基于springboot+微信小程序的小餐厅点餐系统基于springboot+微信小程序的大学生餐厅点餐系统小程序【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/23 14:57:44

小程序毕设项目推荐-基于springboot+Android的研学旅行服务平台APP小程序设计基于Android的乡村研学旅行APP系统app小程序【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华