前言
今天想和大家来聊聊性能测试常见的指标,我在这里也不喜欢说废话我们直接开始吧。
性能测试最基本要考虑以下几点:
1、时间特性,主要指的是软件产品的事物响应时间(用户发出请求到收到应答的这段时间)
2、资源利用率,包括:cpu、内存、网络、硬盘、虚拟内存(如Java虚拟机)
3、服务器可靠性,指服务器能在相对高负载情况下持续的运行
4、可配置优化性,指服务器配置优化、业务逻辑优化、代码优化等
性能指标:
1、响应时间
响应时间是最能反应服务器性能的指标之一,也是用户最关心的业务体验。比如登录某个商城网站时,只消耗1s钟。在进行性能测试时,是通过对事务响应时间(Transaction Response Time)来分析服务器的响应速度。
(一般响应时间在3s内,用户会感觉比较满意。在3s~8s之间用户勉强能接受,大于8s用户就可能无法接受,从而刷新页面或者离开,仅供参考)
2、吞吐量
吞吐量表示单位时间内能够完成的事务数量,因此也被称为每秒事务数(Transaction Per Second),计算方式是完成的事务数除以时间。
3、服务器资源占用
服务器资源占是指在负载情况下,系统的资源利用率。资源占用越低,说明系统越优秀。例如,cpu的占用率、内存使用率、查询Cache命令率、磁盘I/O读写速率等。
CPU常用计数器:
计数器 |
计数器分析 |
%Processor Time |
如果该值持续超过95%,表明瓶颈是cpu。 |
Processor Queue Length |
指待处理队列中的线程数,如果在处理器队列中总是有两个以上的线程则通常表示处理器堵塞,处理器瓶颈会导致该值持续大于2。此外,跟踪计算机的服务器工作队列将显示当前长度的Server Work Queues\Queue Length,队列长度持续大于4则表示可能出现处理器拥塞。 |
%User Time |
表示消耗CPU的数据库操作,如排序、执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表连接、水平分割大表格等方法来降低该值。 |
%Privileged Time |
此计数器是特定时间的值,指(CPU内核时间)在特权模式下处理线程执行代码所花时间的百分比,如果该参数的值和“Physical Disk”参数值一直很高,则表明I/O有问题。可考虑更换磁盘系统。 |
%DPC Time |
网卡CPU的占用率,该值越低越好。如果这个值大于50%并且Processor:%Processor Time非常高,说明提供的网络已经受CPU影响无法饱和工作 |