1.3.1 性能分析及调优原理
性能测试的目的是评估当前系统性能指标,分析定位解决性能瓶颈,预防规避性能风险。性能分析是为了确定导致性能瓶颈的原因,而调优就是用来解决性能瓶颈。通过某些手段来让系统的性能得到提升是性能调优的主要目的。
性能分析主要有以下两种方法。
1)指标达成法
将测试结果与用户需求进行比较,如果达到用户需要则测试通过。
● 系统满足10万注册用户(其中活跃用户数为1万)访问。
● 系统处理能力:20个注册/秒、45个并发浏览/秒、30个登录操作/秒。
● 服务器资源利用率在满负荷的情况下,忙时峰值CPU负载不超过75%,内存占用不超过80%。
例如,需要对一个参加100米跑的选手在比赛前进行性能测试,确保其能获得冠军,那么首先需要明确第一名所需要达到的性能目标(100米短跑总时间),对其进行性能测试,当发现测试结果能够达到冠军所具备的条件后,性能测试即可结束。
2)最优化分析法
通过分析并消除系统性能瓶颈,使系统的处理能力最大化,系统资源实现充分利用。
例如,需要对一个参加100米跑的选手进行技术指导,并不在乎他是否能够拿到冠军,而是重点强调能否提升自己的比赛成绩,那么就需要进行系统的训练和指导,如规范起跑动作、强化肌肉及协调性等,最终实现运动成绩的提高。
对应的性能调优方法也分为两大方向,如图1.6所示。
图1.6 性能调优方向
1)应用程序诊断
应用程序的诊断是性能测试的最初目的。通过模拟多用户操作形成负载,检验应用程序是否能够满足用户性能需求。如果不能满足,则定位应用瓶颈,并寻找解决该瓶颈的方案,确保系统在修正后能够满足用户需求。对于一个项目来说,一般都以应用诊断为主。
2)系统调优
在性能调优中最基本的目标是为了满足用户,而进一步的要求是超越自己,这个时候需要做的是让系统能够比以前更加优秀地运行,通过生成负载,对测试结果进行分析,并且准备大量的软硬件环境进行迭代测试,找出影响性能的要素,最终提升系统的性能。一般产品都会采用系统调优的方式来逐步完善系统性能。
常见的性能瓶颈有如下一些情况。
1)硬件上的性能瓶颈
一般指的是CPU、RAM方面的问题,分为服务器硬件瓶颈、网络瓶颈(对局域网可以不考虑)、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、Web服务器等)、应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)。
例如,确定了在数据库服务器上需要6个CPU、12GB内存。但是在测试时,发现CPU的持续利用率超过95%,这时可以认为在硬件上出现了性能瓶颈。