美文网首页
性能测试基础

性能测试基础

作者: 陌椰_5702 | 来源:发表于2018-05-20 10:26 被阅读0次

一.性能测试概况

性能测试是一个总称,具体可细分为性能测试、负载测试、压力测试、稳定性测试

性能测试:

以系统设计初期规划的性能指标为预期目标、对系统不断施加压力、验证系统在资源可接受的范围内、是否达到性能预期。

负载测试:

对系统不断的请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值。

压力测试:

在超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。

稳定性测试:

被测系统在特定硬件、软件、网络环境下,给系统加载一定业务压力,使系统运行一段较长时间,以检测系统是否稳定。

二.性能的资源指标

对互联网服务进行服务端性能测试时,主要关注两方面的性能指标:

1.业务指标

比如吞吐量(QPS、TPS),响应时间(RT)、并发数、业务成功率等。

2.资源指标,如CPU、内存、Diski/o、network i/o等资源的消耗情况。

2.1 CPU使用率

有进程处于running状态的时间/总时间,在vmstat主要通过us、sys和id三列数据来体现:

us:用户占用cpu的百分比

sy:系统(内核和中断)占用cpu的百分比

id:cpu空闲的百分比

性能测试指标中,cpu使用率通常用us+sy来计算,其可接受上限通常在70%-80%。另外,需要注意的是,在测试过程中,如果sy的值长期大于25%,应该关注in(系统中断)和cs(上下文切换)的数值,并根据被测应用的实现逻辑来分析是否合理。

2.2 运行队列进程数

running状态+waiting状态的进程数,展示了正在运行和等待cpu资源的任务数,可以看作cpu的工作清单,是判断cpu资源是否成为瓶颈的重要依据,在vmstat主要通过r的值来体现。(r,可运行进程数,如果r的值等于系统cpu总核数,则说明cpu已经满负荷,在负载测试中,其可接受上限通常不超过cpu核数的2倍)

2.3 上下文切换

context是指cpu寄存器和程序计数器在某时间点的内容,进程上下文切换即kernel挂起一个进程并将该进程此时的状态存储到内存,然后从内存中恢复下一个要执行的进程原来的状态道寄存器,从其上次暂停的执行代码开始继续执行至频繁的上下文切换将导致sy值增长,在vmstat通过cs的值来体现。(cs,每秒上下文切换次数)

2.4 平均负载Load Average

在unix系统中,load是对系统工作量的度量。load取值有两种情况,多数unix系统取运行队列的值(vmstat输出的r),而linux系统取运行队列的值+处于task_uninterruptible状态的进程数(vmstat输出的b),所以会出现cpu使用率不高但load值很高的情况。Load average就是一段时间内的平均负载,系统工具top、uptime等提供1分钟、5分钟、15分钟的的平均负载值。比如下图中0.28即是1分钟内的load

average,当我们需要了解当前系统负载情况时,可以先查看load average的值,如果系统持续处于高负载(如15分钟平均负载大于cpu总核数的两倍),则查看vmstat的r值和b值来确认是cpu负荷重还是等待I/O的进程太多。

 三.性能分析

排查一个网站的性能瓶颈和排查一个程序的性能瓶颈手法基本相同,检查请求处理的各个环节的日志、分析哪个环节响应时间不合理、超过预期;然后检查监控数据,分析影响性能的主要因素是内存、磁盘、网络还是cpu,是代码问题还是架构设计不合理、或者系统资源确实不足

四.性能方案制定

性能测试是基于功能测试来进行的,先分析单个用户的功能流程以及系统的数据流向(包括后台的数据流向)结构图,然后再考虑大量的用户操作。步骤如下:

1)确认测试目标

2)分析被测系统业务需求

3)分析被测系统的系统结构

4)分析被测系统的性能测试点(可能产生性能瓶颈的节点/是否有外部不可压系统/是否需要开发配合改动)

5)设计测试方案、检测方案和测试案例

6)选择测试工具

7)测试开发

8)测试执行

9)测试结果分析

10)测试调优测试验证测试分析

11)测试报告

相关文章

  • 玩转电商应用性能调优

    第1章 入门篇—性能测试基础知识 什么性能测试 性能测试类型 性能测试基本流程 性能测试需求分析 性能测试指标

  • 性能测试进阶(二)

    现在开始正式的来理解性能测试 一、性能测试基础 什么是性能,以及忽视性能回带来怎样的结果,那么什么是性能测试...

  • LoadRunner介绍以及基本操作流程

    LoadRunner性能测试基础 性能测试: ◆使用自动化测试工具对产品按一定的性能指标进行测试,解决性能瓶颈,...

  • 总结7

    性能测试 性能测试 是 性能优化 的 前提和基础性能测试 是 性能优化结果的 检查和衡量标准主观视角:用户感受到的...

  • 性能测试 | 性能测试基础

    一、性能测试 1.1 性能测试基础 1.1.1 性能测试本质 基于协议模拟用户发出请求(业务的模拟),对服务器形成...

  • 性能测试技术要求

    测试工具 Jmeter loadRunner 测试基础知识 性能测试理论 自动化测试理论 测试开发 服务器性能诊断...

  • 【第二天上】性能测试难点

    技术要求: 1、测试工具:jmeter\LR 2、测试基础:性能测试理论、自动化测试理论、测试开发 3、服务器性能...

  • 性能压测时,并发压力增加,系统响应时间和吞吐量如何变化

    性能测试 性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有...

  • 性能测试基础---性能测试分类

    性能测试(狭义) 性能测试方法是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。通...

  • 2018-09-25 C语言与Loadrunner

    1 :性能测试工程师需要编程基础吗?答案是肯定的,原因如下:  做过性能测试的人都知道,很多情况下,性能测试不是...

网友评论

      本文标题:性能测试基础

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