美文网首页
性能测试简介

性能测试简介

作者: 君皇的天下 | 来源:发表于2020-05-11 16:17 被阅读0次

一、什么是性能测试?

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

二、性能测试内容

1)负债测试(load test):对于分布式网络,测试不同用户数量来测试系统的反应,主要关注性能指标,系统不同表现。
2)压力测试(stress testing):高压状态下多用户高并发测试(30万-50万),主要关注系统是怎么崩溃的。(内存泄漏,cpu无响应,数据库无反应,网络堵塞)
3)容量测试(volumn testing):系统最大支撑的相关数量,数据库最大数据数量,用户数量。

三、性能测试指标

1.从外部看,性能测试主要关注如下三个指标
  • 吞吐量:每秒钟系统能够处理的请求数、任务数。
  • 响应时间:服务处理一个请求或一个任务的耗时。
  • 错误率:一批请求中结果出错的请求所占比例。
2.从内部看,即从服务器的角度看,性能测试主要关注
  • CPU
  • 内存
  • 服务器负载
  • 网络
  • 磁盘IO

四、各性能指标介绍

1.响应时间

响应时间是最能反应服务器性能的指标之一,也是用户最关心的业务体验(一般响应时间在3s内,用户会感觉比较满意。在3s~8s之间用户勉强能接受,大于8s用户就可能无法接受,从而刷新页面或者离开)
响应时间=网络响应时间+应用程序响应时间=(N1+N2+N3+N4)+(A1+A2+A3)

image.png
2.吞吐量

吞吐量:即网络传输的数据量,简单来说,就是处理客户的请求数。
吞吐率:单位时间(可以是秒/分/时/天)内网络成功传输的数据量,如请求数/秒、页面数/秒
吞吐量QPS(TPS)= 并发数/平均响应时间
吞吐量预估方法:采用8/2原则。即80%的请求访问在20%的时间内到达。此时根据系统pv测算出qps值
峰值qps=(总Pv * 80%)/(606024*20%)。

例如500W访问,预估QPS: (500W * 0.8) / (606024*0.2) = 400W / 17280 = 232

3.错误率

错误率和服务的具体实现有关。通常情况下,由于网络超时等外部原因造成的错误比例不应超过5%%,由于服务本身导致的错误率不应超过1%,个别服务要求高,错误率不能超过0.01% 。

4.cpu

后台服务的所有指令和数据处理都是由CPU负责,服务对CPU的利用率对服务的性能起着决定性的作用。

Linux系统的CPU主要有如下几个维度的统计数据:

  • us:用户态使用的cpu时间百分比
  • sy:系统态使用的cpu时间百分比
  • ni:用做nice加权的进程分配的用户态cpu时间百分比
  • id:空闲的cpu时间百分比
  • wa:cpu等待IO完成时间百分比
  • hi:硬中断消耗时间百分比
  • si:软中断消耗时间百分比
5.内存

计算机中所有程序的运行都在内存中进行,内存分为物理内存、页面交换(Paging),SWAP内存(虚拟内存)

  • 页面交换:当物理内存即实际的内存满了的时候,将物理内存中不常用的进程调出存储到虚拟内存中,以缓解物理内存空间的压力,所以当物理内存与虚拟内存的数据交换频繁的时候,这时候就要关注下内存的性能情况。
  • SWAP内存:为进程分配虚拟的内存空间,即调用硬盘的空间作为内存使用。
  • 物理内存:一般即使是物理内存满内存也不能代表内存出现问题,主要是看虚拟内存swap,虚拟内存应该<=70%,大于则可以考虑是否内存问题或者内存泄漏

内存的性能分析是用可用内存与页面交换来分析的,可用内存使用占70%-80%为上限,当超出这个数值,内存性能情况就比较危险,而且即使可用内存使用不超过80%的数值时,页面交换比较频繁时,也是要关注下内存情况。

6.网络

指单位时间内通过网络的数据量,当吞吐量大于网路设备或链路最大传输能力,即带宽时,则应该考虑升级网络设备或者增加带宽,Linux命令netstate

7.磁盘IO

磁盘的 I/O,顾名思义就是磁盘的输入输出,输入指的是对磁盘写入数据,输出指的是从磁盘读出数据。服务器常用的是 SAS 和 FC 磁盘,每一种磁盘的性能是不一样的。磁盘吞吐量,指单位时间内通过磁盘的数据量,主要关注磁盘的繁忙率,如果高于70%,则磁盘瓶颈。

四、峰值QPS和机器计算公式

原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

相关文章

  • 性能测试参考手册

    性能测试参阅手册 1、性能测试简介 1.1 什么是性能测试 软件性能测试,性能首先是一种指标,表明软件系统或构件对...

  • 15使用 Go 进行单元测试

    简介 单元测试 性能测试 性能分析 测试覆盖率 总结 当前部分的代码 简介 日常开发中, 测试是不能缺少的. Go...

  • 【第二章】jmeter环境搭建与实战

    本章大纲 jmete性能测试工具简介 jmete运行环境搭建 jmete基本使用 jmete性能测试工具简介 多线...

  • 性能测试简介

    一、什么是性能测试? 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测...

  • istio 性能测试

    istio 相关文章列表: istio 简介 istio 性能测试 官方性能测试 在官方给定的标准测试下(1000...

  • 云上的移动性能测试平台

    简介:功能决定现在,性能决定未来。欢迎大家围观《云上的移动性能测试平台》, 了解EMAS性能测试平台的能力与规划。...

  • 性能测试计划怎么写?

    一.简介 简介部分就不用过多描述了,无非是项目的背景,进行此次性能测试的原因,以及性能测试覆盖的范围等等,几乎所有...

  • GO Benchmarking-基准测试

    简介 基准测试是一种测试代码性能的方法。想要测试解决同一问题的不同方案的性能,以及查看哪种解决方案的性能更好时,基...

  • iperf使用

    简介 Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,...

  • 如何去学习,一份认证,一本书,还是一堂课?

    介绍:TestOps云层简介:全栈测试、TestOps测试运维开拓者。著有《性能测试进阶指南-loadrunner...

网友评论

      本文标题:性能测试简介

      本文链接:https://www.haomeiwen.com/subject/bzsunhtx.html