关键词:吞吐量 性能计数器
常用的网站性能测试指标有:TPS、吞吐量、并发数、响应时间、性能计数器等。
吞吐量
系统吞吐量几个重要參数:QPS(TPS)、并发数、响应时间。
并发数、QPS、平均响应时间三者之间关系QPS(每秒查询数)、TPS(每秒事务数)、HPS(每秒HTTP请求数)是吞吐量的常用量化指标。
并发数:系统同一时候能处理的request/事务 数量,这个也是反应了系统的负载能力。
QPS(TPS):每秒系统能处理的请求/事务 数量,这是目前最常用的性能测试指标。
响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,一般取平均时间。
故它们三者之间的关系是:QPS(TPS)= 并发数/平均响应时间
性能计数器
性能计数器是描述服务器或操作系统性能的一些数据指标,如使用内存数、进程时间,在性能测试中发挥着“监控和分析”的作用,尤其是在分析统统可扩展性、进行性能瓶颈定位时有着非常关键的作用。
Linux中可以使用 top 或者 uptime 命令看到当前系统的负载及资源利用率情况。
资源利用率:指系统各种资源的使用情况,如cpu占用率为68%,内存占用率为55%,一般使用“资源实际使用/总的资源可用量”形成资源利用率。
$ top
top -15:47:21up4days,19:57,7users, load average:0.00,0.00,0.00Tasks: 109total,1running,108sleeping,0stopped,0 zombie
Cpu(s): 0.5%us,0.5%sy,0.0%ni,98.8%id,0.0%wa,0.0%hi,0.2%si,0.0%st
Mem: 1922368k total, 1845156k used, 77212k free, 163552k buffers
Swap: 4128760k total, 22284k used, 4106476k free, 637292k cached
所以,一个网站优化的目的是,最大限度的利用好服务器硬件资源提升资源利用率,减少用户请求的响应时间,提高系统吞吐量,提高系统并发数。
吞吐量与并发数的关系
吞吐量:一段时间内应用系统处理用户的请求数(以下介绍指单位时间内,也可以理解为吞吐率),这个定义考察点一般是系统本身因素;当然也可以用单位时间内流经被测系统的数据流量,一般单位为b/s,即每秒钟流经的字节数,这个定义的考察点既有系统本身因素也有网络,外设等因素,也可以理解为除客户端以外的测试环境及被测系统。
并发用户数:指同一时间点对业务功能同时操作的用户数,可以分为两种:一种是严格意义上的并发,即所有的用户在同一时刻做同一件事或操作,这时业务功能一般指同一类型的业务;另外一种并发是广义范围的并发,这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或都操作可以是相同的,也可以是不同的,这时业务功能可能不是同一类型的业务。
并发数 >= 吞吐量
一般来说,在系统的设计范围之内,吞吐量随系统的并发用户数的增加呈现增加趋势,也就是说你客户端来多少请求数系统吃(处理)多少请求数;当超出这个范围时有两种情况,一种是系统只能处理这么多,超过这个数系统不接收了,最后随着并发用户数的增多吞吐量是一个水平的直线;
还有一种情况是不管来多少系统都接收最后导致系统吞吐量下降甚至系统崩溃。并发用户数是客户端单位时间内对服务器端施加的压力,具体能不能接受并处理要看被测系统的吞吐量,而吞吐量是被测系统单位时间内处理的请求数或者说单位时间内处理的字节数;一个着重于客户端的操作即测试手段,一个着重于应用系统的处理能力即查看对象;(上面的讨论没有考虑两者的单位,如一个用户同时有多个请求情况)
两者的计算公式如下:
平均并发用户数:C=nL / T
其中C是平均的并发用户数,n是平均每天访问用户数,L是一天内用户从登录到退出的平均时间(操作平均时间),T是考察时间长度(一天内多长时间有用户使用系统)
并发用户数峰值: C^约等于C + 3*根号C
其中C^是并发用户峰值,C是平均并发用户数,该公式遵循泊松分布理论。(该公式针对一般被测系统,特殊不做讨论)
吞吐量计算:当没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系,可以采用以下公式计算:
吞吐量:F=VU * R / T
其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间,其实通过这个公式就能看出吞吐量与并发用户数之间的关系了(这里的VU就是我们用工具模拟的并发用户数)。
参考:
https://www.cnblogs.com/cynchanpin/p/7365859.html
网友评论