网站性能是客观的指标,可以具体体现到响应时间,吞吐量等技术指标,同时也是主观的感受,而感受则是一种与具体参与者相关的微妙的东西,用户的感受和工程师的感受不同,不同的用户感受也不同。
4.1 网站性能测试
性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有不同的优化手段。
4.1.1 不同视角下的网站性能
1. 用户视角的网站性能
从用户角度,网站性能就是用户在浏览器上直观感受到的网站响应速度快还是慢。主要优化手段:优化页面HTML样式,利用浏览器端的并发和异步特性,调整浏览器缓存策略,使用CDN服务,反向代理等。
2. 开发人员视角的网站性能
从开发人员角度,关注的主要是应用程序本身及其相关子系统的性能,包括响应延迟,系统吞吐量,并发处理能力,系统稳定性等技术指标。主要优化手段:使用缓存加速数据读取,使用集群提高吞吐能力,使用异步消息加快请求响应及实现削峰,使用代码优化手段改善程序性能等。
3. 运维人员视角的网站性能
从运维人员角度,关注基础设施性能和资源利用率,如网络运营商的带宽能力,服务器硬件的配置,数据中心网络架构,服务器和网络带宽的资源利用率等。主要优化手段:建设优化骨干网,使用高性价比定制服务器,利用虚拟化技术优化资源利用等。
4.1.2 性能测试指标
1. 响应时间
指应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。
2. 并发数
指系统能够同时处理请求的数目,也反映了系统的负载特性。
3. 吞吐量
指单位时间内系统处理的请求数量,体现系统的整体处理能力。如:TPS(每秒事务数)是吞吐量的一个常用量化标准,HPS(每秒HTTP请求数),QPS(每秒查询数)等。在系统并发数由小逐渐增大的过程中(这个过程中也伴随着服务器系统资源消耗逐渐增大),系统吞吐量先是逐渐增加,达到一个极限后,随着并发数的增加反而下降,达到系统崩溃点后,系统资源耗尽,吞吐量均为零。
而这个过程中,响应时间则是保持小幅上升,到达吞吐量极限后,快速上升,到到系统崩溃点后,系统失去响应。
4. 性能计数器
描述服务器或操作系统性能的一些数据指标。包括System Load,对象与线程数,内存使用,CPU使用,磁盘与网络IO等指标。
System Load即系统负载,指当前正在被CPU执行和等待被CPU执行的进程数目总和,是反映系统忙闲程度的重要指标。多核CPU的情况下,完美情况是所有CPU都在使用,没有进程在等待处理。所以Load的理想值是CPU的数目。当Load值低于CPU数目的时候,表示CPU有空闲,资源存在浪费;当Load值高于CPU数目的时候,表示进程在排队等候CPU调度,表示系统资源不足,影响应用程序的执行性能。在Linux系统中使用top命令查看。
4.1.3 性能测试方法
性能测试:以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能瓶颈。
负载测试:
压力测试:
稳定性测试: