性能工程是发现和解决软件系统性能问题最主要的方法体系和技术手段,它一般包含以下几个部分:性能测试,性能轮廓,性能分析,性能优化和性能规划(容量规划)。
成都创新互联公司专业为企业提供洛川网站建设、洛川做网站、洛川网站设计、洛川网站制作等企业网站建设、网页设计与制作、洛川企业网站模板建站服务,10余年洛川做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
在性能工程中,技术层面上最难的部分是性能分析和性能优化,而整体上最为繁琐和复杂的则是性能规划,因为其包括了性能测试,基础设施,性能建模和资源协调等相关的工作,甚至需要做系统架构调整才能满足相应的规划工作。
对于用户量不大的中小型系统,因为单机或者少量的多机就可以满足所有的业务性能需求,所以一般不需要做性能规划。但是随着业务性能需求的增大,产品环境的资源需求随之增加。但是为了避免增加过多资源,尽可能地减少资源的浪费,所以需要找到满足业务性能需求的最小资源量。
通过性能规划,可以找到这个最小的资源量。其次,有些项目的产品环境和测试环境的资源是不一样的,甚至有巨大的区别。使用性能规划的一系列实践,可以通过测试环境的性能指标,推测或者计算出产品环境中大概的性能情况。从而判断当前的产品环境是不是满足业务性能需求。
现代弹性云平台出现之前,如果要部署一个服务器系统,必须购买固定配置和数量的物理机,应用服务器多机扩展也相对很困难,成本也很高。传统的数据库系统则更难以进行扩展,虽然以NewSQL为代表TiDB等数据库已经支持了水平横向扩展的能力,但是和应用服务器一样,硬件水平横向扩张也相对很困难,成本也很高。所以在传统的基础设施上做性能规划的痛点比较多,难度也比较大。
现代弹性云平台出现之后,在其上的服务实例的硬件配置和数量可以非常容易地变更,数据库的硬件能力也可以进行变更。所以在这种基础设施下,可以更为容易地进行性能规划的工作。
在进行性能规划之前,一定要熟悉整个系统的架构,并针对三个关键点进行隔离分析:网关,应用服务器和数据库。
以现在的技术,很难对已有的网关系统本身进行水平横向扩展,只能对其进行单机扩展,包括升级CPU,内存等。对于应用服务器,单机配置最好要和产品环境的实例保持一致,只是改变服务器数量来进行性能规划测试。对于无法进行水平横向扩展的应用系统来说,一般不需要做性能规划。最后对于数据库,如果无法水平扩展的数据库系统,可以使用云平台自带的数据库系统,因为现在大部分云数据库系统都支持扩展数据库的单机能力,比如Amazon RDS和 Azure SQL Database等。如果使用的是分布式数据库,则可以像应用服务系统一样在云平台上进行水平横向扩展。
只有根据业务性能需求,对关键三点都尽可能分别做性能规划,才能做到真正的全方位的性能规划。
步骤:
做性能规划,一般有以下6个基本步骤:
首先准备测试环境,最好选用云平台作为测试环境,如果无法使用云平台则需要准备足够量的物理机,以便得到足够的拟合数据。选取性能指标和建立测试模型是最关键和重要的两步,它们的正确和有效性直接影响到性能规划的工作量和结果的有效性。对于业务需求和系统架构的不同,重点关注的指标也有所不同,比如数据密集型的系统,一般会选取Response Time和TPS等作为关键指标;而数据存储型的系统,则选择吞吐量和IO作为关键指标。对于测试模型则可以考虑基于独立功能或者是基于场景,是需要有Think Time还是不需要,下图就是一个简单的测试模型的示例:
变化测试指标并进行性能测试则是最繁琐的步骤,因为需要改变各种配置和指标来进行测试,并收集各种测试结果数据。最后两步则是通过分析和数学拟合,并根据业务性能需求产出性能规划结果。
最后为了验证性能规划的有效性,需要在产品环境中通过各种监控手段,比如应用系统埋点采集或者日志采集,服务器探针等获取应用系统和服务器的各种性能数据,从而验证性能规划的有效性。
在性能规划的步骤里面有一步是拟合测试数据,它是通过数学的拟合方法,通过测试数据打点之后,得到一个曲线和与之相应的数学函数,然后通过这个数学函数可以估计性能的变化规律,从而对于硬件资源和系统配置进行规划的工作。
下表是一个以实例数量作为变化指标,在特定时间内完成的请求数作为观察指标的测试结果数据:
然后通过这些数据生成散列图(以下演示图使用的是MS Excel生成的,可以使用任何其他的数学工具或者库来生成以下的演示图,比如SageMath,Mathematica等)
拟合有很多种方式,比如指数拟合,线性拟合和多项式拟合等。一般情况下,多项式拟合可以获得比较准确的结果,下面三张图是通过Excel生成的多项式拟合(包括方程)。其中R=1则表示多项式完全符合所有的坐标点,且斜率为正。但是测试结果数据本身就存在一些不确定性,所以一般会找尽可能R接近1并且曲线尽可能平滑的拟合结果来进行推算。比如下图中我就会选择第一张图中的拟合函数来进行推算。
拟合图1:
拟合图2:
拟合图3:
一般情况下,做性能规划测试时,还可以选取下图中的指标来进行测试,并得到相应的数据来做二维拟合:
除了二维拟合,还可以做三维拟合,下图是常规情况下做三维拟合需要关注和变化的指标:
性能规划在大型应用服务系统中的地位越来越高,因为它可以发现系统在常规性能测试的情况下很难发现的一些性能瓶颈问题,找到性能规律,从而根据不同的业务性能需求来规划产品环境的资源和配置,从而可以有效地防止服务器过载或者节约产品环境的资源和成本,一举多得。
当前题目:性能工程之性能规划实践
文章位置:http://www.shufengxianlan.com/qtweb/news45/546295.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联