性能测试指标
1.事务(Transaction)
2.请求响应时间
- 从客户端发起的一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间(“秒”或者“毫秒”)
- 一个公式可以表示:响应时间=网络响应时间+应用程序响应时间。标准可参考国外的3/5/10原则:
-
互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。
-
金融企业:1秒以下为佳,部分复杂业务3秒以下。
-
保险企业:3秒以下为佳。
-
制造业:5秒以下为佳。
-
时间窗口:不同数据量结果是不一样的,大数据量的情况下,2小时内完成。
3.并发用户数
- 严格意义上的并发,即所有的用户在同一时刻做同一件事情或者操作,这种操作一般指做同一类型的业务。
- 广义范围的并发:这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或者操作可以是相同的,也可以是不同的。对整个系统而言,仍然是有很多用户同时对系统进行操作
- 可以看出,后一种并发是包含前一种并发的。而且后一种并发更接近用户的实际使用情况,因此对于大多数的系统,只有数量很少的用户进行“严格意义上的并发”。
- 对于WEB性能测试而言,这2种并发情况一般都需要进行测试,通常做法是先进行严格意义上的并发测试。严格意义上的用户并发一般发生在使用比较频繁的模块中,尽管发生的概率不是很大,但是一旦发生性能问题,后果很可能是致命的。
- 用户并发数量: 一种错误观点是把并发用户数量理解为使用系统的全部用户的数量,理由是这些用户可能同时使用系统;
还有一种比较接近正确的观点是把在线用户数量理解为并发用户数量。实际上在线用户也不一定会和其他用户发生并发,例如正在浏览网页的用户,对服务器没有任何影响,但是,在线用户数量是计算并发用户数量的主要依据之一。
三者关系: 系统用户数 >= 在线用户数 >= 并发用户数
4.TPS(transactionper second)
-
HPS(Hits Per Second):每秒点击次数,单位是次/秒。
-
TPS(Transaction per Second):系统每秒处理交易数,单位是笔/秒。
-
QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。
参考标准:无论TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好一般情况下:
- 金融行业:1000TPS~50000TPS,不包括互联网化的活动
- 保险行业:100TPS~100000TPS,不包括互联网化的活动
- 制造行业:10TPS~5000TPS
- 互联网电子商务:10000TPS~1000000TPS
- 互联网中型网站:1000TPS~50000TPS
- 互联网小型网站: 500TPS~10000TPS
5.点击率
- 每秒钟用户向WEB服务器提交的HTTP请求数.
- 点击率越大,对服务器的压力越大.
6.cpu
CPU指标主要指的CPU利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。
- CPU利用率要低于业界警戒值范围之内,即小于或者等于75%
- CPU sys%小于或者等于30%
- CPU wait%小于或者等于5%
7.内存
内存是计算机中重要的部件之一,它是外存与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。
内存(Memory)也被称为内存储器和主存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
- 现在的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈
- 衡量系统内存是否有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。
-
swap作用:内存不够用时,将存储器中的数据块从DRAM移到swap的磁盘空间中,以释放更多的空间给当前进程使用.
当再次需要那些数据时,就可以将swap磁盘中的数据重新移到内存,而将那些不用的数据块从内存移到swap中
8.网络吞吐量
- 网络吞吐量简称为Network Throughput,是指在无网络故障的情况下单位时间内通过的网络的数据数量(单位为Byte/s)。
- 网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备。
- 参考标准:网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的70%。
9.磁盘I/O
简而言之:
磁盘的 IOPS,也就是在一秒内,磁盘进行多少次 I/O 读写。
磁盘的吞吐量,也就是每秒磁盘 I/O 的流量,即磁盘写入加上读出的数据的大小。
10.错误率
参考标准:不同系统对错误率的要求不同,但一般不超出千分之六,即成功率不低于99.4%
11.中间件指标
常用的中间件例如Tomcat、Weblogic等,指标主要包括JVM、ThreadPool、JDBC。
参考标准:
- 当前正在运行的线程数不能超过设定的最大值。一般情况下系统性能较好的情况下,线程数最小值设置50和最大值设置200比较合适。
- 当前运行的JDBC连接数不能超过设定的最大值。一般情况下系统性能较好的情况下,JDBC最小值设置50和最大值设置200比较合适。
- GC频率不能频繁,特别是FULL GC更不能频繁,一般情况下系统性能较好的情况下,JVM最小堆大小和最大堆大小分别设置1024M比较合适。
12.数据库指标
常用的数据库例如MySQL指标主要包括SQL、吞吐量、缓存命中率、连接数等。具体如下:
参考标准:
- SQL耗时越小越好,一般情况下毫米、微秒级别
- 命中率越高越好,一般情况下不能低于95%
- 锁等待次数越低越好,等待时间越短越好
13.稳定性指标
14.可扩展性指标