1、软件性能概念
软件性能是与软件功能相对应的一种非常重要的非功能特性,表明了软件系统对时间及时性与资源经济性的要求。对于一个软件系统,运行时执行速度越快、占用系统存储资源及其他资源越少,则软件性能越好。
2、系统管理员对性能的关注点
响应时间,影响响应时间的因素有:
功能的粒度、客户端网络情况、服务器当前忙闲情况。
3、运维人员看性能
服务器的资源使用情况、应用服务器和数据库服务器的资源使用状况、系统的可拓展性(能否实现拓展、系统的瓶颈、更换设备提高系统性能、系统能否支持7X24小时的业务访问)、系统容量(最多支持的用户访问、最大的业务处理量)
4、开发人员看性能
系统架构(架构设计合理)、数据库设计、代码是否存在性能问题、系统内存使用是否合理、系统是否有不合理的线程同步方式、系统是否存在不合理的资源竞争。
5、性能的重要性
(1)系统性能越好,执行速度越快,用户使用系统的体验就越好
(2)系统性能越好,用户的等待时间越少,有利于提高软件操作效率。
(3)系统性能越好,处理能力越大,单位时间处理业务量越大。
(4)系统性能越好,在大量用户访问系统时系统稳定性越好,能够提供持续服务。
(5)系统性能扩展性越好,越容易提升系统的处理能力,以适应更多的访问需求
6、常用性能指标
a、响应时间
响应时间指用户感受到的软件系统为其服务所耗费的时间。
一般情况下,需要定义三种情况下的系统的响应时间:
(1)闲时响应时间:指系统中访问用户数量较少的情况下,用户访问系统的响应时间,也可理解为在不受其他用户干扰的情况下,系统应该具有的性能表现。
(2)忙时响应时间:指在系统处理正常访问用户量的情况下,用户访问系统的响应时间。该指标定义了系统在正常访问状态下应该具有的响应时间要求,体现了系统在正常访问状态下的性能表现。
(3)峰时响应时间:指在系统具有大量并发用户的情况下,用户访问系统的响应时间。该指标定义了系统在承载最大并发用户情况下应该具有的响应时间要求,体现了系统压力负荷最大情况下的性能表现,也可以理解为系统最大响应时间。
b、并发用户数
并发用户数指系统能够同时处理的用户请求的数目,也可以理解为同时向系统提交请求的用户数目。注册用户数指系统中全部注册用户的数量;在线用户数指在相同时间段内登录了系统,并在系统中进行操作的用户数量。
平均并发用户数:指在系统正常访问量情况下的并发用户数。
最大并发用户数:指在峰值访问情况下的并发用户数。
如何判断是否达到峰值访问情况:
(1)系统响应时间达到了峰值响应时间,即系统的响应时间已经达到了用户能够接收的上限。
(2)系统服务器资源利用率已经达到了上限,即服务器的CPU利用率、内存利用率等指标已经达到了需求规定的上限。
(3)系统请求成功率,即成功请求数/总请求数。当系统压力过大时,某些用户请求就会执行失败,如果失败率过高,就说明系统已经达到了处理能力的上限,所以可以根据成功率来判断是否已经达到了最大并发用户数。
平均并发用户数仅反映了系统某个时刻的用户访问情况,并不反映系统的性能情况;而最大并发用户数反映了系统的处理能力,往往作为一项重要的性能指标在需求分析时进行定义。
c、吞吐量
吞吐量指单位时间内系统处理的客户请求数量,体现系统的整体处理能力。系统吞吐量越大,说明系统性能越好。衡量吞吐量的常用指标内包括:
RPS:请求数/秒,描述系统每秒能够处理的最大请求数量。
PPS:页面数/秒,描述系统每秒能够现实的页面数量。
PV:页面数/天,描述系统每天总的Page View数量。
TPS:事务/秒,描述系统每秒能够处理的事务数量。
QPS:查询/秒,描述系统每秒能够处理的查询请求数量。
d、服务器性能计数器
服务器性能计数器指服务器或操作系统性能的一些数据指标,在性能测试中发挥着监控和分析的关键作用。常用的操作系统性能计数器包括System Load、进程与线程数、使用内存数、CPU使用率、磁盘I/O、网络I/O等。
资源利用率反映的是在一段时间内服务器资源平均被占用的情况,能够更加直观的反映系统当前的运行情况,例如CPU利用率如果达到80%,就说明当前CPU基本已经耗尽,系统处于满载状态。所以在进行性能需求分析时,往往通过资源利用率指标来定义服务器性能要求。