Bootstrap

全面指南:使用JMeter进行性能压测与性能优化(中间件压测、数据库压测、分布式集群压测、调优)

目录

一、性能测试的指标

1、并发量

2、响应时间

3、错误率

4、吞吐量

5、资源使用率

二、压测全流程

三、其他注意点

1、并发和吞吐量的关系

2、并发和线程的关系

四、调优及分布式集群压测(待仔细学习)

1.线程数量超过单机承载能力时的解决方案

2. 如何搭建分布式集群

3. 实施集群压测及监控

4. 处理集群中单台施压机报错的情况

5. 长时间压测(10小时)的注意事项

6. 处理混合场景:用户思考时间及多个服务同时压测

7. 开发压测监控大屏

8. 汇总多个测试报告

9. 监控服务器的 CPU、内存、磁盘

10. 监控 Java 程序、Nginx、MySQL 数据库及 JVM 指标

11. 性能分析及测试结论

12. 区分压测问题与程序问题

13. 内存溢出与性能问题标注

14. 与 BI 项目的关联

四、调优(待仔细学习)

1. 缓存调优

2. 集群调优

3. MQ(消息队列)中间件调优

4. 分布式微服务全链路压测

五、连接数据库进行数据库压测(待仔细学习)

1、步骤

2、性能测试指标

3.性能瓶颈发现方法


一、性能测试的指标
1、并发量
  • 定义:描述一个系统所面临的压力,服务器收到多少请求(多少/秒)

  • 用的人多,服务器收到请求多,并发量就高。

  • 用来描述场景

2、响应时间
  • 定义:请求开始到获取结果的时长(毫秒 1000ms=1s)

  • 直观反映了用户体验

  • 统计方式:平均响应时间 (按响应时间分布 90% 95% 99%)

  • 平均响应时间:是对所有请求的响应时间取平均值,代表整体性能的一个平均水平。

    百分位数(90%、95%、99%):

    • 90%百分位数:表示90%的请求响应时间都小于这个值,也就是说有10%的请求响应时间是比这个值更长的。

    • 95%百分位数:表示95%的请求响应时间都小于这个值,也就是说有5%的请求响应时间比这个值更长。

    • 99%百分位数:表示99%的请求响应时间都小于这个值,也就是说有1%的请求响应时间比这个值更长。

3、错误率
  • 定义:高并发海量请求场景,系统出错误的比例。

    错误率=出错请求数量/整体请求数量

4、吞吐量
  • 定义:服务器1秒内处理了多少请求

  • 吞吐量和并发量的区别:并发量是服务器收到请求,吞吐量是服务器处理请求

  • 细分概念

    • QPS (Queries Per Second):QPS 指的是每秒能够处理的查询数量,通常用于描述Web服务**或数据库在一定时间内处理请求的能力。

    • TPS (Transactions Per Second):TPS 指的是每秒能够处理的事务数量,这里的事务通常指的是一系列逻辑上的操作,这些操作可能包含多个查询、插入、更新等。一个事务需要满足ACID属性(原子性、一致性、隔离性、持久性)。

5、资源使用率
  • 定义:程序在测压中,服务器资源的占用情况

  • 程序运行代码需要占用服务器资源,CPU/内存、磁盘、网络…

这个是网络的指标 不是性能测试的指标:

1、带宽

  • 定义:网络吞吐量,系统或网络在单位时间内能够传输的数据量

  • 单位:比特每秒(bps)_为单位

;