性能测试第一章
Posted sanya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试第一章相关的知识,希望对你有一定的参考价值。
一、性能测试的目的?
1、评估当前系统
针对从未做过的性能的系统,进行一系列测试,了解知晓当前系统的性能,并作出相关评估
2、寻找瓶颈,优化性能
常见的现象为,莫业务操作响应时间长、某系统上线运行一段时间后越来越慢,这些都需要逐步分析定位并调优
3、预测未来性能
当用户数和业务量增加时能否及时应对?调整策略时增加应用服务器还是数据库服务器?还是优化代码逻辑?等等····
二、性能术语与指标详解
1、并发数
在理解并发数之前,先提出3个常见的概念,分别是系统用户数、在线用户数、并发用户数;对应的解释如下:
系统用户数:简单的说就是该系统注册的用户数,他们可以是活跃的也可以是僵尸的
在线用户数:即登录系统的用户,但在线用户并不一定对服务器产生压力,因为有些用户什么也没干
并发用户数:是对服务器产生压力的用户,例如:在线用户可能在600,只有20%的用户对服务器产生了压力,这20%的用户就是并发用户数
并发的概念:一般有两种理解方式,一种为所有用户在同一时刻做同一操作,主要为验证程序或数据库对并发的处理能力;另一种为多个用户对被测系统发起多个请求,也可以是不同的操作,类似于混合场景的概念。
2、响应时间
有缓存情况下:开始--->客户端发起请求--->[判断存在缓存]--->读取缓存--->数据处理--->渲染元素---->结束
没有缓存的情况下:开始--->客户端发起请求--->[判断缓存没有存在]--->【DNS域名解析获得服务器ip---链接服务器---发送请求---等待服务器响应---服务器返回数据html】--->数据处理--->渲染元素---->结束
可总结为:响应时间=网络传输(请求)时间 + 服务器处理(一层多多层)时间 + 网络传输(响应)时间 + 页面前端解析渲染时间
在实际应用过程中,需要明白响应时间的长短取决于用户的实际需求,而不是盲目设定该指标。
3、每秒通过事物数(TPS)
TPS是指每秒通过的事物数,直接反映系统性能的指标,该值大时,系统性能会比较好,当然每个系统都有它的上限,不可能无限大,将它与平均响应时间进行对比,可以分析事物数量对响应时间的影响。
例如:当压力加大时,TPS曲线如果变化缓慢或有平坦的趋势,很有可能时服务器开始出现瓶颈了。如果环境没有发生变化,对于同一系统会存在一个最大处理事物能力,他并不随着
并发用户的多少二改变。就好像地铁口检票机一样,只有两台机器,一次机器只能通过一个人,不论人数是100还是1000
4、每秒点击数
每秒点击数代表用户每秒向Web服务器提交的HTTP请求数。但这里需要注意的是提交一个登录请求,对于用户来说感觉是一个请求,但对于后端服务器来说也许是多个请求,所以点击一次不代表就是一个请求。例如:点击一个链接,该操作返回的页面上有6张图片,因为下载每张图片都需要一个HTTP请求,所以这个页面下载完成之后的点击数应该是7。每秒点击数从侧面可以反映客户端的状况。每秒点击数不正常,一般可能是网络问题或脚本导致的,需要进一步具体分析
5、吞吐量
吞吐量与吞吐率得概念
吞吐量是指单位时间内系统处理得请求数量,直接反映服务器承受得压力,需要重点关注
吞吐率是指用户在给定得一秒内从服务器获得的数据量,简而言之就是服务器返回的数据量
例如:一个食品加工厂的生产效率很高,每天可以生产很多食品,但是工厂只有两辆三轮车在运输,这个时候运输食品的能力就成为了瓶颈,也就是它的吞吐量/吞吐率出现了问题
6、思考时间
1、思考时间就是用户进行操作时,每个请求或者操作之间的间隔时间,是为了更加真实地模拟用户的操作场景,因为在实际使用中不太可能会出现不断地发送请求,一般都是一个请求后,等待一段时间,然后发送下一个请求。恶意攻击除外。
2、关于0思考时间,如果想了解系统的最大承受能力或极端情况下的系统的性能表现,则可以设置0思考时间。如果是预估系统的性能,就应该最大可能地模拟真实思考时间。一般都会加上思考时间,只有在分析时要去掉思考时间。
例如:某个系统的发帖功能,连续发贴时,系统会提示两次发帖间隔时间不能小于15秒。这时如果要满足业务的特定需求就需要加上思考时间15秒
7、资源利用率
重点理解的几个指标
CPU:它像人的大脑,主要进行判断和处理,能反映出系统的繁忙程度,一般分为系统CPU与用户CPU,其中系统CPU是处理系统本身所占用的资源,用户CPU则是处理程序所占的资源,对象不同。
Load Average(平均负载):指一段时间内CPU正在处理和等待CPU处理的任务,也就是CPU使用队列的长度的统计信息。这里的平均负载值就好像地铁里等待上车的乘客,乘客越多则负载值也越大。
Memory:他就像是人大脑中的记忆区域,将各种信息收集起来存放。数据从内存中读取要比从磁盘上读取速度快,而内存经常发生内存泄漏或内存溢出的现象,是需要重点留意的。不过这里需要注意,短时间的可用内存越来越少,不代表一定有内存泄漏或溢出。
队列:可以理解成地铁进站的排队现象,队列长,说明处理能力达到了极限或者遇到了阻塞
IO:与磁盘的交互,重点关注交换频率和磁盘队列长度
网络:重点关注网络的流量,看是否存在网络带宽的瓶颈。
以上是关于性能测试第一章的主要内容,如果未能解决你的问题,请参考以下文章