- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
性能分析与调优的原理及原则
性能分析与调优的原理最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库。从操作系统(CPU调度,内存管理,进程调度,磁盘I/O)、网络、协议(HTTP, TCP/IP),还是从应用程序代码,数据库调优,中间件配置等方面入手。单一个中间件又分web中间件(apache、IIS),应用中间件(tomcat、weblogic、webSphere)等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功。但调优对于每一项的要求又不仅仅是“知道”或“会使用”这么简单。起码要达到“如何更好的使用”。常看到性能测试书中说,性能测试不单单是性能测试工程师一个人的事儿。需要DBA?、开发人员、运维人员的配合完成。但是在不少情况下性能测试是由性能测试人员独立完成的,退一步就算由其它人员的协助,了解系统架构的各个模块对于自身的提高也有很大帮助,同进也更能得到别人的尊重。再说性能调优之前,我们有必要再提一下进行测试的目的,或者我们进行性能测试的初衷是什么?能力验证:验证某系统在一定条件具有什么样的能力。能力规划:如何使系统达到我们要求的性能能力。应用程序诊断:比如内存泄漏,通过功能测试很难发现,但通过性能测试却很容易发现。性能调优:满足用户需求,进一步进行系统分析找出瓶颈,优化瓶颈,提高系统整体性能。一、一般系统的瓶颈性能测试调优需要先发现瓶颈,那么系统一般会存在哪些瓶颈:1、硬件上的性能瓶颈:一般指的是CPU、内存、磁盘I/O?方面的问题,分为服务器硬件瓶颈、网络瓶颈(对局域网可以不考虑)、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、web服务器等)、应用瓶颈(SQL?语句、数据库设计、业务逻辑、算法等)。2、应用软件上的性能瓶颈:一般指的是应用服务器、web?服务器等应用软件,还包括数据库系统。例如:中间件weblogic?平台上配置的JDBC连接池的参数设置不合理,造成的瓶颈。3、应用程序上的性能瓶颈:一般指的是开发人员新开发出来的应用程序。例如,程序架构规划不合理,程序本身设计有问题(串行处理、请求的处理线程不够),造成系统在大量用户方位时性能低下而造成的瓶颈。4、操作系统上的性能瓶颈:一般指的是windows、UNIX、Linux等操作系统。例如,在进行性能测试,出现物理内存不足时,虚拟内存设置也不合理,虚拟内存的交换效率就会大大降低,从而导致行为的响应时间大大增加,这时认为操作系统上出现性能瓶颈。5、网络设备上的性能瓶颈:一般指的是防火墙、动态负载均衡器、交换机等设备。例如,在动态负载均衡器上设置了动态分发负载的机制,当发现某个应用服务器上的硬件资源已经到达极限时,动态负载均衡器将后续的交易请求发送到其他负载较轻的应用服务器上。在测试时发现,动态负载均衡器没有起到相应的作用,这时可以认为网络瓶颈。性能测试出现的原因及其定位十分复杂,这里只是简单介绍常见的几种瓶颈类型和特征,而性能测试所需要做的就是根据各种情况因素综合考虑,然后协助开发人员/DBA/运维人员一起定位性能瓶颈。二、一般性能调优步骤一般性能问题调优的步骤:1、步骤一:确定问题应用程序代码:在通常情况下,很多程序的性能问题都是写出来的,因此对于发现瓶颈的模块,应该首先检查一下代码。数据库配置:经常引起整个系统运行缓慢,一些诸如oracle?的大型数据库都是需要DBA进行正确的参数调整才能投产的。操作系统配置:不合理就可能引起系统瓶颈。硬件设置:硬盘速度、内存大小等都是容易引起瓶颈的原因,因此这些都是分析的重点。网络:网络负载过重导致网络冲突和网络延迟。2、步骤二:分析问题当确定了问题之后,我们要明确这个问题影响的是响应时间吞吐量,还是其他问题?是多数用户还是少数用户遇到了问题?如果是少数用户,这几个用户与其它用户的操作有什么不用?系统资源监控的结果是否正常?CPU的使用是否到达极限?I/O?情况如何?问题是否集中在某一类模块中??是客户端还是服务器出现问题??系统硬件配置是否够用?实际负载是否超过了系统的负载能力??是否未对系统进行优化?通过这些分析及一些与系统相关的问题,可以对系统瓶颈有更深入的了解,进而分析出真正的原因。3、步骤三:确定调整目标和解决方案提高系统吞吐量,缩短响应时间,更好地支持并发。4、步骤四:测试解决方案对通过解决方案调优后的系统进行基准测试。(基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试)5、步骤五:分析调优结果系统调优是否达到或者超出了预定目标?系统是整体性能得到了改善,还是以系统某部分性能来解决其他问题。调优是否可以结束了。最后,如果达到了预期目标,调优工作就基本可以结束了。下面算是一个技巧,如面试官问到一个性能问题假设,我不知道性能问题出在哪儿
文档评论(0)