压力测试的一些基本概念

讨论压测的一些概念...

压力测试的一些基本概念

这个系列的博客会从概念开始,一步步熟悉压测的流程和目的。包含常用的工具、压测的指标以及真实的项目案例。闲言少叙,我们马上开始吧~

压测是什么

压测(压力测试),是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。

压测主要检测服务器的承受能力,包括用户承受能力(多少用户同时玩基本不影响质量)、流量承受等。

为什么要压测

压测的目的,是通过模拟真实用户的行为,测算出机器的性能(单台机器的 QPS),从而推算出系统在承受指定用户数(例如100W)时,需要多少机器能支撑得住

压测是上线前,针对未来可能达到的用户数量的一次预估(提前演练),压测以后通过优化程序的性能或准备充足的机器,来保证用户的体验

名词解释

压测类型

压测通常分为以下几个类型:

  1. 压力测试(Stress Testing)

    也称之为强度测试,目的是测试一个系统的最大抗压能力,在强负载(大数据、高并发)的情况下,测试系统所能承受的最大压力,预估系统的瓶颈。

  2. 并发测试(Concurrency Testing)

    通过模拟很多用户同一时刻访问系统,或对系统某一个功能进行操作,来测试系统的性能,从中发现问题(并发读写、线程控制、资源争抢)。

  3. 耐久性测试(Configuration Testing)

    通过对系统在大负荷的条件下长时间运行,测试系统、机器的长时间运行下的状况,从中发现问题(内存泄漏、数据库连接池不释放、资源不回收)。

常用名词

压测过程中还有一些常用的名词,解释如下:

  1. 并发(Concurrency)

    一个处理器同时处理多个任务的能力(逻辑上处理的能力)。

  2. 并行(Parallel)

    多个处理器或者是多核的处理器同时处理多个不同的任务(物理上同时执行)。

  3. QPS(每秒钟查询数量 Queries Per Second)

    服务器每秒钟处理请求数量 (req/sec 请求数/秒 一段时间内总请求数/请求时间)。

  4. 事务(Transactions)

    用户一次或者是几次请求的集合

  5. TPS(每秒钟处理事务数量 Transaction Per Second)

    服务器每秒钟处理事务数量(一个事务可能包括多个请求)。

  6. 请求成功数(Request Success Number)

    一次压测中,请求成功的数量。

  7. 请求失败数(Request Failures Number)

    一次压测中,请求失败的数量。

  8. 错误率(Error Rate)

    压测中,请求成功的数量与请求失败数量的比率

  9. 最大响应时间(Max Response Time)

    一次压测中,从发出请求或指令系统做出的反映(响应)的最大时间。

  10. 最少响应时间(Minimum Response Time)

    一次压测中,从发出请求或指令系统做出的反映(响应)的最少时间。

  11. 平均响应时间(Average Response Time)

    一次压测中,从发出请求或指令系统做出的反映(响应)的平均时间。

性能指标

  1. CPU利用率(CPU Usage)

    CPU 利用率分用户态系统态空闲态,CPU 利用率是指:CPU 执行非系统空闲进程的时间与 CPU 总执行时间的比率。

  2. 内存使用率(Memory usage)

    内存使用率指的是此进程所开销的内存。

  3. IO(Disk input/ output)

    磁盘的读写包速率。

  4. 网卡负载(Network Load)

    网卡的进出带宽,包量。

访问指标

  1. PV(页面浏览量 Page Views)

    一定时间范围内(时间范围可以是一天、一个月等自定义的时间段),用户每打开 1 个网站页面,记录 1 个 PV。用户多次打开同一页面,PV 值累计多次。

  2. UV(网站独立访客 Unique Visitors)

    一定时间范围内(时间范围可以是一天、一个月等自定义的时间段),通过互联网访问、流量网站的自然人。相同访客多次访问网站,只计算为 1 个独立访客。

如何计算压测指标

首先要明确一点,我们需要有目的的进行压测。也就是这次压测我们需要达到什么目标?(如:单台机器的性能为 100 QPS ?网站能同时满足 100W 人同时在线)。

然后可以通过以下计算方法来进行计算:

  1. 压测原则:每天 80% 的访问量集中在20%的时间里,这 20% 的时间就叫做峰值
  2. QPS公式:( 总PV数*80% ) / ( 每天的秒数*20% ) = 峰值时间QPS
  3. 机器:峰值时间QPS / 单台机器的QPS = 需要的机器的数量

假设:网站每天的用户数(100W),每天的用户的访问量约为 3000W PV,服务器需要多少 QPS ?

( 30000000*0.8 ) / (86400 * 0.2) ≈ 1389 (QPS)

假设:单台机器的的 QPS 是 69,需要需要多少台机器来支撑?

1389 / 69 ≈ 20

我的玫瑰,种在繁星中的一颗~
Built with Hugo
主题 StackJimmy 设计