网站的性能
对于网站来说,除了当前系统的功能需求外,我们还需要关注性能、可用性、伸缩性、扩展性和安全性。在架构设计中,我们需要平衡这5个要素以实现需求和架构目标,也可以通过考虑这些要素来衡量一个软件架构设计的优劣,判断是否满足了期望。
今天我们先来谈谈性能。性能是网站的一个重要指标,用户无法忍受一个响应缓慢的网站,除非没得选。一个打开缓慢的网站会导致严重的用户流失。网站的性能是客观指标,同时也是主观感受,用户的感受和工程师的感受不同,不同的用户感受也不同。
1、不同视角下的网站性能
用户角度下,网站的性能就是用户在浏览器上直观感受的网站响应速度快还是慢。而用户感受的时间,包括用户计算机和网络服务器通信的时间、服务器的响应处理时间、用户浏览器构造请求解析响应的时间。不同的计算机性能的差异,不同浏览器解析html速度的差异,不同网络运营商提供的互联网服务的差异,都会影响用户的主观感受。
开发人员关注的主要是应用程序本身及其子系统的性能,包括响应延迟、吞吐量、并发处理能力、系统稳定性等技术指标。
运维人员更关注基础设施性能和资源利用率,如网络运营商的宽度能力,服务器的硬件配置等。
2、性能测试指标
响应时间:执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。
并发数:系统能同时处理请求的数目,这个数字反映了系统的负载特性。
吞吐量:指单位时间内系统的请求数量,体现系统的整体处理能力。
性能计数器:描述服务器或操作系统性能的一些数据指标。包括System Load、对象与线程数、内存使用、cpu使用、磁盘与网络I/O等指标。
3、性能测试方法
性能测试是一个总称,具体可细分成为性能测试、负载测试、压力测试、稳定性测试。
性能测试:以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否达到性能预期。
负载测试:对系统不断增加并发请求一增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如某种资源已经呈饱和状态,这是对系统施加压力,系统的处理能力不但不能提高,反而会下降。
压力测试:超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力。
稳定性测试:被测试系统在特定的硬件、软件、网络环境下,给系统加载一定业务压力,使系统运行一段较长时间,以检测系统是否稳定。
一般来说,性能测试遵循下图的规律。如下图:
图中,X轴表示消耗的系统资源,Y轴表示系统的处理能力(吞吐量)。在开始阶段,随着并发请求数的增加,系统使用较少的资源就到达较好的处理能力(a~b段)。随着压力的持续增加,系统处理能力变缓,直到到到一个最大值(c点),这是系统的最大负载点。超过这个点后,再增加压力,系统的处理能力反而下降,而消耗的资源却更多,直到资源消耗达到极限(d点),这个点可看做系统崩溃点。
评论