性能分析及调优原理(web 端、移动端)

性能分析及调优原理(web 端、移动端)

性能测试的目的是评估当前系统性能指标,分析定位解决性能瓶颈,预防规避性能风险。性能分析是为了确定导致性能瓶颈的原因,而调优就是用来解决性能瓶颈。通过某些手段来让系统的性能得到提升是性能调优的主要目的。

   【指标达成法】     

将测试结果与用户需求进行比较,如果达到用户需要则测试通过。

     系统满足10万注册用户(其中活跃用户数为1万)访问

     系统处理能力:20个注册每秒,45个并发浏览每秒。30个登录操作每秒。

     服务器资源利用率在满负载的情况下。忙时峰值CPU负载不超过75%,内存占用不超过80%

  例如:需要对一个参加100米跑的选手进行技术指导,并不在乎他是否能够拿到冠军,而是重点强调能否提升自己的 比赛成绩,那么就需要进行系统的训练和指导,如规范的起跑动作、强化肌肉及协调性等,最终实现运动成绩的提高。

      1)应用程序诊断

       应用程序的诊断是性能测试的最初目的。通过模拟多用户操作形成负载,检验应用程序是否能满足用户性需求。如果不能满足,则定位应用瓶颈,并寻找解决该瓶颈的方案,确保系系统在修正后能满足用户需求。对于一个项目来说,一般都以应用诊断为主。

       2)系统调优

        在性能调优中最基本的目的是为了满足用户,而进一步的要求是超越自己,这个时候需要做的是让系统能够比以前更加优秀地运行,通过生成负载,对测试结果进行分析,并且准备大量的软硬件环境进行迭代测试,找出影响性能的要素,最终提升系统的性能。一般产品都会采用系统调优的方式来逐步完善系统性能。

 

      ##常见的性能瓶颈有如下一些情况###

1)硬件上的性能瓶颈

一般指的是CPURAM方面的问题,分为服务器硬件瓶颈、网络瓶颈、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、Web服务器)、应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)  例如:确定了在数据库服务器上需要6CPU12G 内存。但是正测试时,发现CPU的持续利用率超过95%,这是可以认为在硬件时上出现了性能瓶颈。

 2)应用软件上出现的性能瓶颈

一般指的是应用服务器、Web服务器等应用软件,还包括数据库系统。

例如: WebLogic 平台上配置了JDBC连接池的参数,最大连接数为50 ,最小连接数为5,增加量为10。在测试时发现,当负载增加时,现有的连接数不足,系统会动态生成10个新的连接,导致交易处理的响应时间大大增加。这时可以认为在应用软件上出现了性能瓶颈。

  3)应用程序上的性能瓶颈

一般指的是开发人员新开发出来的应用程序。 例如:某程序员开发了一个缴费处理程序。在测试时发现,这个缴费处理程序在处理用户的并发缴费请求时,只能串行处理,无法并行处理,导致缴费交易的处理时间很长,这是可以认为在应用程序上出现了性能瓶颈。

   4)操作系统的性能瓶颈

一般指的是 WindowUnixlinux等操作系统

   5)网络设备上的性能瓶颈

 一般指的是防火墙、动态负载均衡器、交换机等设备。 例如,在动态负载均衡器上设置动态分发负载的机制,当发现某个应用服务器上的硬件资源已经到达极限时,动态负载均衡器将后续的交易请求发送到其他负载较轻的应用服务器上。在测试时发现,动态负载均衡器机制没有起到相应的作用,这是可以认为在网络设备上出现了性能瓶颈。

     性能瓶颈出现的原因及其定位是十分复杂的,这里只是简单介绍常见的几种瓶颈类型和特征,而性能测试所需要做的就是根据各种情况因素综合考虑,然后协助开发人员一起定位性能瓶颈。

 

 

###一般性能问题调优的步骤###

Step1 确定问题

##应用程序代码##:在通常情况下,很多程序的性能问题都是写出来打的,因此对于发现瓶颈的模块,应该首先检查一下代码。

##数据库配置##:经常引起整个系统运行缓慢,一些诸如Oracle的大型数据库都是需要DBA进行正确的参数调整才能投产的。

##操作系统配置##:不合理就可能引起系统瓶颈。

##硬件设置##: 硬盘速度、内存大小等都是容易引起瓶颈的原因,因此这些都是分析的重点。

##网络##:网络负载过重导致网络冲突和网络延迟

Step2.当确定了问题之后,我们要明确这个问题影响的是响应时间吞吐量,还是其他问题?

是多数用户还是少数用户遇到的问题?如果是少数用户,这几个用户与其他用户的操作有什么不同?系统资源监控的结果是否正常?CPU 的使用是否达到了极限?IO情况如何?问题是否集中在某一类模块中?是客户端还是服务器出现问题?系统硬件配置是否够用?实际负载是否超过了系统的负载能力?是否未对系统进行优化?

Step3确定调整目标和解决方案。

提高系统吞吐量,缩短响应时间,更好地支持并发。

Step4 测试解决方案

对通过解决方案调优后的系统进行基准测试。

Step5 分析调优结果

系统调优是否达到或者超出了预订目标?系统是整体性能得到了改善,还是以牺牲某部分性能来解决其他问题。调优是否可以结束了?

最后,如果达到了预期目标,调优工作就基本可以结束了。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章