加载中…
个人资料
山色空濛雨亦奇
山色空濛雨亦奇
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,295
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

压力测试基本概念

(2018-01-12 11:39:30)
标签:

压测

分类: 压力测试小房间

1. 并发用户

严格意义的并发:即所有用户在同一时刻做同一件事或者操作,这种操作一般

是指做同一类型的业务。

2. 并发用户数

  并发用户数是指同时进行请求的客户数量

  并发用户数用于模拟用户的真实负载情况(并发情况是对系统最大的考验)

  并发数 = 同时使用系统的用户数

3. 虚拟用户数

   同时使用系统的用户数

4.  TPS(transaction per second )系统每秒处理事务数,单位 /秒(事务:整个业务交易处理过程),若能获取到高峰阶段数据量(笔/小时)的精确数值则TPS等于“高等时段交易量/3600”,否则根据平均日交易量(笔/日)“压力指标建议内容及计算方法中”的公式计算高峰时段交易量。

5.  请求响应时间

  响应时间是从客户端发起一个请求开始,到客户端收到从服务器返回的响应结束,过程消耗的时间。

 在某些工具中,响应时间通常会称为“TTLB”,即“time to last byte”,意思就是从发起一个请求开始,到客户端收到最后一个字节的响应所消耗时间。

 响应时间的单位一般为“秒”或者“毫秒” 1秒==1000毫秒

响应时间==网络响应时间 + 应用程序响应时间

响应时间 = (N1+N2+N3+N4) + (A1+A2+A3)

6. 事务响应时间

站在业务角度定义的概念,主要指用户一些业务的响应情况。

7.  系统资源阀值

定义系统负载情况下,系统各类硬件资源的阀门。

(1)CPU利用率阀值:不同负载情况下各应用服务器,数据库服务器等主机的CPU上限。包括均值和最大值,缺值为70%。

(2)其余还包含:内存占用,I/0吞吐率,网路带宽。

8.  错误率阀值

    错误率指系统在负载情况下,失败失误的概率。错误率=(失败事务数/事务总数)*100%。定义该项指标值时,通常会根据业务重要性和并发用户数的不同,定义不同阀值。一般不超出千分之五。

    稳定性较好的系统,其错误率应该有超时引起,即为超时率。

9.  吞吐量

        吞吐量是指一个稍长统计时间段内处理的客户端业务请求数量。

        从业务角度看,吞吐量可以用“业务熟/小时或天”,“访问人数/天”,“页面访问量/天”来衡量。

   10.  吞吐率

        单位时间内网络上传数据量,也可以指单位时间内处理的客户端请求数量。它是衡量网络性能指标的重要指标。通常情况下,吞吐率用“请求数/秒”

        或者“页面数/秒”来衡量。

   11.  点击率

        每秒钟用户向web端服务器提交的HTTP请求数。这个指标是web端特有的一个指标:Web端应用是“请求--响应”模式,用户发出一次申请,服务器就要处理一次,所以点击是Web应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大,对服务器的压力也越大。

   12.  资源利用率

        定义:资源利用率是指对不同系统资源的使用程度,体乳服务器的CPU(s)

        内存,网路带宽等。

        资源利用率通常以占用最大值的百分比n%来衡量。

   13.  内存泄漏

        定义:内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应调用free或delete释放该内存块,否则,这块内存就不能再次使用,我们就说这块内存泄漏了。

   14.  瓶颈

        一般是指在整体中的关键限制因素。瓶颈在不同领域有不同的含义。瓶颈就是瓶子脖子的意思,就是整个系统中最薄弱的环境,也就是你电脑的配置中有一个硬件性能限制了整个电脑的性能的时候就会出现瓶颈效应。

   15.  基准测试

        基准测试主要验证脚本,环境的正确性(虚拟用户数设置为1,执行2分钟)和系统执行单支交易的性能表现。

   16.  单交易负载测试

        通过在执行单支交易的被测系统上不断增加压力,直到性能指标,例如响应时间超出预定指标或者某种资源已经达到饱和状态。这种测试是为了找到系统的处理极限,为系统调优提供数据。

        用压力测试工具模拟发起虚拟用户,并随时间的增加,不断的扩大用户的数量。用监控工具进行实时监控,如CPU,内存,硬盘等系统资源使用率达到90%以上,停止测试。这时检查虚拟用户数量,这个虚拟用户的数量就是系统所能承受的最大压力。

        将所有用户数量以虚拟用户数在10分钟内登录至应用服务器,所有用户群登录应用服务器停留10分钟,已验证所有用户群登录应用服务器能力。

   17.  稳定性测试

        该测试用来测试系统能够维持稳定状态的最大交易量,这个最大交易量取决于系统能够维持的一个可接受的交易响应时间内的每秒最大交易数。

         用压力测试工具模拟并发虚拟用户,将最大并发虚拟用户数降80%作为稳定性测试的数据指标,连续运行6小时,服务器不宕机,交易成功率达到确定的压力测试指标。

   18.   压力极限测试(STRESS)

         100%虚拟用户数按交易比例执行测试期间,不断增加虚拟用户数,直到测试指标不被满足。

   19.   混合场景负载压力测试(LOAD)

         100%虚拟用户数按交易比例执行测试40分钟。

从测试的目的出发、从用户的需求出发,就比较容易区分性能测试、负载测试和压力测试。性能测试是为了获得系统在某种特定的条件下(包括特定的负载条件下)的性能指标数据,而负载测试、压力测试是为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等。通过负载测试,也是为了获得系统正常工作时所能承受的最大负载,这时负载测试就成为容量测试。通过压力测试,可以知道在什么极限情况下系统会崩溃、系统是否具有自我恢复性等,但更多的是为了确定系统的稳定性。

1. 负载测试 是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。

2. 压力测试 是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。

3. 压力测试 可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。通过压力测试,可以更快地发现内存泄漏问题,还可以更快地发现影响系统稳定性的问题。例如,在正常负载情况下,某些功能不能正常使用或系统出错的概率比较低,可能一个月只出现一次,但在高负载(压力测试)下,可能一天就出现,从而发现有缺陷的功能或其它系统问题。通过负载测试,可以证明这一点,某个电子商务网站的订单提交功能,在10个并发用户时错误率是零,在 50个并发用户时错误率是1%,而在200个并发用户时错误率是20%。

综合所述,负载测试、压力测试和性能测试的概念可以概括如下:负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。负载测试的加载方式也有很多种,可以根据测试需要来选择。性能测试是为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行。压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等

负载测试及压力测试特点:

性能测试方法通过模拟生产运行的业务压力量和使用场景组合测试性能是否能够满足需要。具备三个特点:

(1)这种方法的目的是验证系统是否具有系统宣称具有的能力。

(2)这种方法需要事先了解被测试系统典型场景、并确定性能目标。

(3)这种方法要求在已确定的环境下运行

负载测试用来测定系统饱和状态、确定阀值。其特点有:

(1)这种方法的目的是找到系统处理能力的极限;通过“检测、加压、阀值”手段找到如“响应时间不超过10秒”,“服务器平均CPU利用率低于65%”等指标。
2)这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景、另外HP Mercury LoadRuner在使用该方法进行“加压”的时候必须选择典型场景。
3)这种性能测试方法一般用来了解系统的性能容量,或者是配合性能调优的时候来使用。

压力测试方法测试目标系统在一定饱和状态下,例如CPU、内存等在饱和状态下、系统能够处理的session的能力,以及系统是否会出现错误。该方法需要在系统cache调优与pool优化方面着手。该方法具备以下特点

1)该方法的目的是检查系统处于压力情况下的,应用的表现。如增加VU数量、节点数量、并发用户数量等使应用系统的资源使用保持一定的水平,这种方法的主要目的是检验此时的应用表现,重点在于有无错误信息产生,系统对应用的响应时间等。
2)该方法通过模拟负载在实现压力。这种模拟需要考虑的层面很多、首先、模拟必须是有效的,我的经验是需要结合业务系统和软件架构来定制模拟指标、我测试过一些国内生产的压力测试工具、他们使用通用的指标来考量、造成很多信息反馈有很大的水分。需要考虑的层面如:Oracle I/O、JVM GC、Conn Pool等。
3)该方法还可以测试系统的稳定性。这里的技巧在于“什么样的平台定义一个多长的压力测试时间让其稳定运行才是科学的?”

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有