上周,对性能测试系列专题,在公号内发表了第一篇介绍:【性能系列连载一】开篇:性能测试不可不知的“干货”,但反响貌似并不太好,但既然此前已答应了部分读者要连载分享性能这块的知识,含着泪也得继续写。前端
性能测试的基础:就是在确保功能实现正确的前提下,经过合适的性能测试加压方式和策略,并收集考察服务端应用程序的各项性能指标,以及服务器硬件资源的使用状况,来评估是否存在性能问题隐患。java
那今天做为性能测试系列的第二篇,主要会为你们介绍在服务端性能测试中,常见的性能指标有哪些。数据库
从性能测试分析度量的度角来看,能够从以下几个维度来收集考察各项性能指标:缓存
下面将从如上这几个维度,分别从各自维度常见指标,以及指标含义、指标行业参考标准等方面进行介绍。服务器
系统性能指标,常见的可从以下几类进行参考:微信
定义和解释:响应时间,简称RT。是指系统对请求做出响应的时间,能够理解为是指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。直观上看,这个指标与人对软件性能的主观感觉是很是一致的,由于它完整地记录了整个计算机系统处理请求的时间。网络
在性能检测中通常以压力发起端至被压测服务器返回处理结果的时间为计量,单位通常为秒或毫秒,因为一个系统一般会提供许多功能,而不一样功能的处理逻辑也千差万别,于是不一样功能的响应时间也不尽相同,甚至同一功能在不一样输入数据的状况下响应时间也不相同。因此,在讨论一个系统的响应时间时,一般是指该系统全部功能的平均时间或者全部功能的最大响应时间。架构
行业参考标准:并发
不一样行业不一样业务可接受的响应时间是不一样的,通常状况,对于在线实时交易:app
须要指出的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。
定义和解释:系统处理能力是指系统在利用系统硬件平台和软件平台进行信息处理的能力。系统处理能力经过系统每秒钟可以处理的交易数量来评价,交易有两种理解:一是业务人员角度的一笔业务过程;二是系统角度的一次交易申请和响应过程。前者称为业务交易过程,后者称为事务。两种交易指标均可以评价应用系统的处理能力。
通常状况下,系统处理能力又用如下几个指标来度量:
对于互联网业务中,若是某些业务有且仅有一个请求链接,那么TPS=QPS=HPS,通常状况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器点击请求。
行业参考标准:
不管TPS、QPS、HPS,此指标是衡量系统处理能力很是重要的指标,越大越好,根据经验,通常状况下:
定义和解释:吞吐量是指系统在单位时间内处理请求的数量。
对于单用户的系统,响应时间能够很好地度量系统的性能,但对于并发系统,一般须要用吞吐量做为性能指标。
而对于一个多用户的系统,若是只有一个用户使用时系统的平均响应时间是t,当有你n个用户使用时,每一个用户看到的响应时间一般并非n×t,而每每比n×t小不少(固然,在某些特殊状况下也可能比n×t大,甚至大不少)。通常而言,吞吐量是一个比较通用的指标,两个具备不一样用户数和用户使用模式的系统,若是其最大吞吐量基本一致,则能够判断两个系统的处理能力基本一致。
定义和解释:并发用户数指在同一时刻内,登陆系统并进行业务操做的用户数量。
并发用户数对于长链接系统来讲最大并发用户数便是系统的并发接入能力。对于短链接系统而言最大并发用户数并不等于系统的并发接入能力,而是与系统架构、系统处理能力等各类状况相关。
与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个很是不许确的指标,由于用户不一样的使用模式会致使不一样用户在单位时间发出不一样数量的请求。
定义和解释:错误率简称FR,指系统在负载状况下,失败交易的几率。错误率=(失败交易数/交易总数)*100%。
行业参考标准:
不一样系统对错误率的要求不一样,但通常不超出千分之六,即成功率不低于99.4%
资源性能指标,常见的可从以下几类进行参考:
定义和解释:CPU又称为中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
行业参考标准:
CPU指标主要指的CPU利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。
定义和解释:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中全部程序的运行都是在内存中进行的,所以内存的性能对计算机的影响很是大。
行业参考标准:
如今的操做系统为了最大利用内存,在内存中存放了缓存,所以内存利用率100%并不表明内存有瓶颈,衡量系统内存是否有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,通常状况下,SWAP交换空间利用率要低于70%,太多的交换将会引发系统性能低下。
定义和解释:磁盘吞吐量简称为Disk Throughput,是指在无磁盘故障的状况下单位时间内经过磁盘的数据量。
行业参考标准:
磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的的重要依据,通常状况下,磁盘繁忙率要低于70%。
定义和解释:网络吞吐量简称为Network Throughput,是指在无网络故障的状况下单位时间内经过的网络的数据数量。单位为Byte/s。网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则须要考虑升级网络设备。
行业参考标准:
网络吞吐量指标主要有每秒有多少兆流量进出,通常状况下不能超过设备或链路最大传输能力的70%。
经常使用的中间件例如Tomcat、Weblogic等指标主要包括JVM, ThreadPool, JDBC,具体以下:
一级指标 |
二级指标 |
单位 |
解释 |
---|---|---|---|
GC |
GC频率 |
每秒多少次 |
java虚拟机垃圾部分回收频率 |
GC |
Full GC频率 |
每小时多少次 |
java虚拟机垃圾彻底回收频率 |
GC |
Full GC平均时长 |
秒 |
用于垃圾彻底回收的平均时长 |
GC |
Full GC最大时长 |
秒 |
用于垃圾彻底回收的最大时长 |
GC |
堆使用率 |
百分比 |
堆使用率 |
ThreadPool |
Active Thread Count |
个 |
活动的线程数 |
ThreadPool |
Pending User Request |
个 |
处于排队的用户请求个数 |
JDBC |
JDBC Active Connection |
个 |
JDBC活动链接数 |
行业参考标准:
经常使用的数据库例如MySQL指标主要包括SQL、吞吐量、缓存命中率、链接数等,具体以下:
一级指标 |
二级指标 |
单位 |
解释 |
---|---|---|---|
SQL |
耗时 |
微秒 |
执行SQL耗时 |
吞吐量 |
QPS |
个 |
每秒查询次数 |
吞吐量 |
TPS |
个 |
每秒事务次数 |
命中率 |
Key Buffer命中率 |
百分之 |
索引缓冲区命中率 |
命中率 |
InnoDB Buffer命中率 |
百分比 |
InnoDB缓冲区命中率 |
命中率 |
Query Cache命中率 |
百分比 |
查询缓存命中率 |
命中率 |
Table Cache命中率 |
百分比 |
表缓存命中率数 |
命中率 |
Thread Cache命中率 |
百分比 |
线程缓存命中率 |
锁 |
等待次数 |
次 |
锁等待次数 |
锁 |
等待时间 |
微秒 |
锁等待时间 |
行业参考标准:
最短稳定时间:系统按照最大容量的80%或标准压力(系统的预期平常压力)状况下运行,可以稳定运行的最短期。
通常来讲,对于正常工做日(8小时)运行的系统,至少应该能保证系统稳定运行8小时以上。
对于7*24运行的系统,至少应该可以保证系统稳定运行24小时以上。若是系统不能稳定的运行,上线后,随着业务量的增加和长时间运行,将会出现性能降低甚至崩溃的风险。
参考标准:
定义和解释:是指应用软件或操做系统以群集方式部署,增长的硬件资源与增长的处理能力之间的关系。
计算公式为:(增长性能/原始性能)/(增长资源/原始资源)*100%。
扩展能力应经过多轮测试得到扩展指标的变化趋势。通常扩展能力很是好的应用系统,扩展指标应是线性或接近线性的,如今不少大规模的分布式系统的扩展能力很是好。
参考标准:
理想的扩展能力是资源增长几倍,性能就提高几倍。扩展能力至少在70%以上。
对于服务端性能测试,从系统可靠性指标度量分析时,常见从三类来入手:
对于将双机热备做为可靠性保障手段的系统,可衡量的指标以下:
对于使用集群方式的系统,主要经过如下方式考量其集群可靠性:
本指标为了验证系统的备份/恢复机制是否有效可靠,包括系统的备份和恢复、数据库的备份和恢复、应用的备份和恢复,包括如下测试内容:
其中上述提到的【可扩展指标】和【可靠性指标】,大多数公司在开展性能测试的时候不多会涉及到这些测试点,但这些点从产品总体性能和质量角度来说,又是不得不关注的一些重点,算是给你们提供一些测试思路。
最后,关注公众号「测试开发技术」,并后台回复me, 可扫码添加做者我的微信号,免费领取《敏捷性能测试分析与规划性能测试》《互联网性能测试案例及经验分享》。
点击可阅读原文: