性能指标概述

来源:互联网 发布:windows mobile 10 编辑:程序博客网 时间:2024/05/17 04:04

如何测量性能呢?虽然我们之前提到说,性能是终端用户的感知,但是我们依然需要一些KPI(指标)来进行衡量。
我们将KPI主要分为服务导向和效率导向两大类:
服务导向分为可用性和响应时间:
可用性:程序对于用户的可使用时间,可使用是指程序不会不响应或者超过可接受的响应时间。较低的可用性对于用户而言是致命的,因为即便是短时间的不可用,也可能会造成绝大的损失。 比如阿里云提供的我们最常用的ECS服务,可用性99.95%,我们按照1年365天计算,一年出现失误的时间为:365*24**0.0005=4.38小时,也就是一年内,他们的ECS在4.38小时是不可用的,即无法访问或者响应时间超出他们对客户的承诺。
响应时间:这个最为直观,就是用户从发出请求到获取到获取到请求数据的时间。虽然最容易理解,在真实中却不容易测试,因为要考虑的因素很多,如:服务器的带宽、客户端和服务器的通讯方式和距离、客户端的效率等等。
效率导向分为吞吐量和使用率:
吞吐量:某个事件发生的频率,例如网站的特定时间的点击量。实际测量中需要考虑的内容也较多,拿一个APP来说,考虑吞吐量的时候,起码要考虑:在线用户数、访问某个功能的用户数、瞬时并发、特定时间并发等。
使用率:被服务所使用的资源的使用率,如服务器网络带宽的占比、100个在线用户时内存的使用率。一般至少包括:CPU、内存、带宽、磁盘I/O、磁盘使用率。

通过这些KPI我们来衡量性能的情况。

性能分析的综合性很强,单独测算某个KPI是较为简单的,但是意义缺不大,做好性能分析需要将众多KPI指标按照时间轴或者事件轴放到一起进行分析,时间或事件轴很重要。如果你的性能报告中的KPI是分开的,负责人肯定会崩溃掉,因为根本无法支撑你的分析结果。我就碰到过一次,手下的一个测试负责人(在IBM很多年工作经验)给我的性能报告,竟然没有将并发用户数和服务器和DB的CPU、内存和带宽关联到一起,我看后就崩溃了,将其叫来问并发50人和100人的时候,各资源状态是如何,单独提给我CPU使用率、内存使用率有什么用,直接打回去让重新分析。

性能指标一般都是监控软件进行监测的,检测项的多少取决于工具,windows服务器提供了数以百计的检测项. UNIX/LINUX提供了 top vmstat iostat SAR等监测工具. 现在流行的云服务器如阿里云 亚马逊的AWS都提供了一系列丰富的监控项, 可以满足一般的需求.

例如:
CPU使用率
处理器队列长度
每秒的上下文切换
内存使用率
每秒内存分页错误
每秒的内存缓存错误
每秒内存页面读取
磁盘空间
磁盘的请求数
数据包的丢包率和错误率

0 0