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

零基础学习性能测试第一章:核心性能指标-并发量

目录

  • 零基础学习性能测试:第一章 - 核心性能指标:并发量
    • 一、并发量核心概念解析
      • 1. 并发量定义与分类
      • 2. 并发量关键特性
    • 二、并发量测试的核心价值
      • 1. 业务意义三角模型
      • 2. 实际工作场景应用
    • 三、并发量测试实战指南
      • 1. 测试工具配置要点
      • 2. 并发测试四步流程
      • 3. JMeter并发测试实操
    • 四、并发瓶颈分析与优化
      • 1. 并发瓶颈定位矩阵
      • 2. 常见并发问题解决方案
      • 3. 电商系统并发优化案例
    • 五、工作应用模板与工具
      • 1. 并发测试报告模板
      • 2. 生产环境并发监控方案
      • 3. Linux实时并发监控命令
    • 六、并发量设计黄金法则
      • 1. 并发用户估算公式
      • 2. 并发测试策略选择
      • 3. 并发测试检查清单

零基础学习性能测试:第一章 - 核心性能指标:并发量

本章核心目标:掌握并发量的本质定义、测量方法、与系统容量的关系,学会在实际工作中设计、执行并发测试并分析结果。

一、并发量核心概念解析

1. 并发量定义与分类

并发量
用户并发
请求并发
同时在线用户
同时操作用户
连接数
线程/协程数
类型定义关键指标应用场景
用户并发同时使用系统的用户数在线用户数(Active Users)系统容量规划
操作并发同时执行业务操作的用户数并发操作数(Concurrent Operations)核心业务流程验证
连接并发同时建立的网络连接数TCP连接数服务器资源分配
处理并发系统同时处理的请求数工作线程数(Worker Threads)应用服务器调优

2. 并发量关键特性

特性说明工作应用
时间维度同一时间段而非同一时刻压测时需设置合理的Ramp-up时间
资源占用每个并发消耗CPU/内存等资源根据资源消耗计算服务器承载量
状态保持需要会话(Session)维护配置合理的Session过期时间
排队效应当并发超过系统能力时出现排队监控等待队列长度

二、并发量测试的核心价值

1. 业务意义三角模型

系统稳定性
确定崩溃点
用户体验
保障响应时间
成本控制
精确资源配置

2. 实际工作场景应用

场景并发量测试目标工作成果
新系统上线验证1000并发用户稳定性容量评估报告
大促活动准备测试5000并发支付能力扩容方案建议书
架构优化验证对比优化前后并发能力性能优化ROI分析
故障复盘重现线上高并发故障场景根本原因分析报告

工作模板:并发测试计划
登录系统并发测试计划

  1. 测试目标:验证2000并发登录能力
  2. 并发策略:
    • 阶梯增加:500→1000→1500→2000用户
    • 每阶段持续10分钟
  3. 通过标准:
    • 错误率<0.5%
    • P95响应时间<2秒
    • 无系统崩溃

三、并发量测试实战指南

1. 测试工具配置要点

工具并发配置项关键参数说明
JMeter线程组(Thread Group)线程数=并发用户数
Ramp-up时间控制用户启动速度
LoadRunnerVirtual User GeneratorVuser数量=并发用户数
Ramp Up/Down设置递增/递减策略
LocustUser Count并发的模拟用户数
Spawn Rate每秒启动用户数

2. 并发测试四步流程

测试工具被测系统监控系统1. 逐步增加并发用户2. 实时反馈系统指标3. 采集性能数据4. 生成并发测试报告测试工具被测系统监控系统

3. JMeter并发测试实操

步骤演示:

  1. 创建线程组
    <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="并发测试"><intProp name="ThreadGroup.num_threads">1000</intProp><intProp name="ThreadGroup.ramp_time">300</intProp> <!-- 5分钟启动所有用户 -->
    </ThreadGroup>
    
  2. 添加同步定时器(Synchronizing Timer)
    <SyncTimer guiclass="TestBeanGUI" testclass="SyncTimer" testname="集合点"><intProp name="groupSize">100</intProp> <!-- 每100用户同时触发 -->
    </SyncTimer>
    
  3. 配置监听器收集数据
    • 聚合报告(Aggregate Report)
    • 响应时间图(Response Time Graph)

四、并发瓶颈分析与优化

1. 并发瓶颈定位矩阵

连接超时
线程阻塞
数据库锁
内存溢出
高并发失败
错误类型
网络/连接池瓶颈
线程池不足
SQL优化/分库分表
JVM调优/内存泄漏修复

2. 常见并发问题解决方案

问题现象根本原因优化方案效果预期
连接拒绝(Connection refused)服务器连接数满增加最大连接数立即解决连接问题
响应时间指数级增长线程竞争资源减少锁粒度/使用无锁数据结构提升50%+吞吐量
数据库CPU 100%锁竞争/SQL低效优化查询/引入缓存降低80%数据库负载
内存溢出(OOM)内存泄漏/配置不合理修复泄漏/增大堆内存避免系统崩溃

3. 电商系统并发优化案例

  1. 初始问题

    • 500并发时订单失败率35%
    • 响应时间 > 15秒
  2. 瓶颈分析

    • 数据库连接池满(100/100)
    • 库存更新行锁竞争
    • 支付服务单点瓶颈
  3. 优化方案

    • 数据库连接池扩大至500
    • 库存扣减改用Redis原子操作
    • 支付服务增加节点并负载均衡
  4. 优化结果

    • 支持2000并发下单
    • 失败率降至0.1%
    • 响应时间<1秒

五、工作应用模板与工具

1. 并发测试报告模板

系统并发能力测试报告

测试目标
验证用户中心支持3000并发查询

测试环境

  • 服务器配置:8C16G × 3
  • 测试工具:JMeter 5.6.2
  • 模拟用户:3000虚拟用户

测试结果

并发阶段错误率P95响应时间系统负载
1000用户0%320msCPU 45%
2000用户0.2%850msCPU 78%
3000用户4.5%2300msCPU 98%

结论与建议

  1. 系统安全并发为2000用户
  2. 3000并发时需优化:
    • 增加Redis缓存用户数据
    • 数据库查询添加索引
    • 增加2个应用节点

2. 生产环境并发监控方案

Prometheus + Grafana 看板配置

{"panels": [{"type": "graph","title": "实时并发用户数","targets": [{"expr": "sum(active_users)","interval": "10s"}]},{"type": "gauge","title": "数据库连接池使用","targets": [{"expr": "mysql_connection_pool_used / mysql_connection_pool_max * 100"}]}]
}

3. Linux实时并发监控命令

# 查看TCP连接数(按状态分组)
ss -s# 监控HTTP服务并发连接
watch "netstat -an | grep :80 | awk '{print \$6}' | sort | uniq -c"# 输出示例:
# 150 ESTABLISHED
# 30 TIME_WAIT
# 5 CLOSE_WAIT

六、并发量设计黄金法则

1. 并发用户估算公式

并发用户数 = 平均在线用户数 × 峰值系数
  • 平均在线用户数 = 日活用户(DAU) × 平均在线时长 / 86400
  • 峰值系数 = 高峰时段流量 / 平均流量(通常2-5倍)

工作应用示例

  • DAU = 10万用户
  • 平均在线时长 = 30分钟
  • 峰值系数 = 3倍
  • 并发用户数 = (100000×1800/86400) × 3 ≈ 6250用户

2. 并发测试策略选择

适用场景
适用场景
适用场景
并发测试类型
阶梯增加
瞬间峰值
持续高压
容量规划
弹性测试
稳定性测试

3. 并发测试检查清单

测试前准备

  • 确定目标并发量(业务需求)
  • 准备测试账号池(避免重复登录)
  • 配置资源监控(服务器/DB/网络)
  • 设置集合点(关键业务同步触发)

测试中关注

  • 错误类型分布(连接超时/服务不可用)
  • 资源饱和度曲线(CPU/内存/IO)
  • 中间件指标(线程池/连接池)

测试后分析

  • 绘制并发-响应时间曲线
  • 统计各并发级别错误率
  • 定位首个性能拐点

工作口诀
并发量测承载,分阶梯找拐点
瓶颈先查连接,再验线程资源
监控要做全面,优化要看瓶颈

掌握并发量指标将使你在工作中:

  1. 准确评估系统真实容量
  2. 预防高并发场景故障
  3. 制定科学的扩容策略
  4. 提升系统资源利用率
  5. 保障业务高峰稳定性
http://www.dtcms.com/a/289686.html

相关文章:

  • Node.js 中基于请求 ID 实现简单队列(即时阻止策略/排队等待策略)
  • DMZ网络
  • (1)Windows环境下安装Oracle
  • Vue3 Proxy 数据劫持为什么比Object.defineProperty() Vue2数据劫持的性能更好
  • 人工智能训练师三级实操题第一部分数据处理
  • shell 脚本基础学习
  • Java中的intern()方法
  • 全新安装Proxmox VE启动时卡在Loading initial ramdisk
  • RAII机制以及在ROS的NodeHandler中的实现
  • 【c++】200*200 01灰度矩阵求所有的连通区域坐标集合
  • 鸿蒙开发中 渲染范围的控制
  • 飞腾D2000的BIOS编译
  • 在服务器无网络的环境下安装 VS Code Remote-SSH 组件
  • 【Python练习】053. 编写一个函数,实现简单的文件加密和解密功能
  • C++string类(3)
  • 基于单片机的火灾报警系统设计
  • SaTokenException: 未能获取对应StpLogic 问题解决
  • c#转python第四天:生态系统与常用库
  • 新版Acrobat Pro DC 2025 PDF编辑器下载与保姆级安装教程!!
  • Mermaid 语法
  • 突破select瓶颈:深入理解poll I/O复用技术
  • 让黑窗口变彩色:C++控制台颜色修改指南
  • 【数据结构】第一讲 —— 概论
  • Shell脚本-sort工具
  • 两个数据表的故事第 2 部分:理解“设计”Dk
  • SElinux和iptables介绍
  • 【Linux操作系统 | 第21篇-进阶篇】Shell编程(下篇)
  • 什么是的优先级反转(Priority Inversion) 和 优先级继承(Priority Inheritance)?
  • 【软件测试】使用ADB命令抓取安卓app日志信息(含指定应用)
  • 【AI论文】递归混合体:学习动态递归深度以实现自适应的令牌级计算