性能调优从哪些方面入手?(2011-12-15)(获奖名单已经公布)
本周的问题为“性能调优从哪些方面入手”?期望各位能踊跃的参加有丰厚的奖品等着各位哦!如果你也有问题想提出来和大家一起讨论,请点击此处>>
说不定下期讨论的问题就是由你提出的哦,请快快参与吧!
获奖名单
奖项获奖名单奖励答案链接
一等奖fatfish中国移动手机充值卡50元23#
二等奖yzylion300论坛积分9#
http://bbs.51testing.com/attachments/month_0811/20081125_650d7dccd46be6244f27oXDjE0HoDhyX.gif
B/S架构:
1.前段分析,如发现一个页面非常慢,先分析网络原因,再分析网页中是那些元素占用时间较长,对其进行调优;
2.后端分析,如应用程序和数据库服务器的硬件分析,CPU,内存,磁盘IO等,这是比较好调优的地方;
3.应用程序服务器调优,如IIS,Tomcat,Apache等,这里的调优不是去修改程序,而是选择最合适自己的服务器;数据库选择也一样;
4.程序的调优,如SQL语句、存储过程的效率,程序执行过程中释放内存等,这些我也不太懂,希望广大同仁多多解答。
C/S架构:
由于C/S架构的很多往往不是Http协议,如果是Http协议的,那调优方法和B/S架构的相类似,如果不是Http协议的,前段分析就不太好调优,这点也希望大家给我解答一下,此外B/S调优的2,3,4也符合C/S 沙发 1、页面响应时间2、每秒的点击量3、资源的消耗率
一般都是从这三个方面着手的吧
我之前进行性能测试 是从这三个方面着手的 1 前端分析
2 后台分析
3 网络分析 B/S架构:
1.前段分析,如发现一个页面非常慢,先分析网络原因,再分析网页中是那些元素占用时间较长,对其 ...
mick 发表于 2011-11-14 13:23 http://bbs.51testing.com/images/common/back.gif
补充web应用:
1、CSS和JavaScript:不规范的CSS 会对页面效率有严重影响,这个往往会被忽略。如果JavaScript 性能不足,就会造成浏览器负荷过重。
2、网络传输:如:有些代码程序是在服务器端而不需要被传输的,而有些代码是要用Javascript 实现并在Browser 端执行的,后者会牵涉到更多http请求,可能大大增加网络传输时间。再如:我们会用SSL 协议进行传输,但是在传输时,没有考虑是不是整个网页文件都要用SSL来传输,比如图片文件就可以不用SSL,从而减少传输负载。 1.首先要了解性能调优,一般是当用户抱怨“太慢了”、“性能不足”、“软硬件需要升级
了”等问题时,提供较佳的性能。但不是要解决用户所说的“这系统毁了”、“它不会工作了”等问题,这可能需要的是备援回滚、提高系统可获得性(HA high Availability)等解决方案。但就数据库系统而言,规划高可获得性的架构(如SQL Cluster、Mirroring、Log Shipping、Replication等)不会提升系统性能,还要注意是否降低了性能。
2.要看现象,而一般观测性能问题的现象有: 系统响应速度太慢。 每秒所完成的系统输出/入低于预期。 相同的环境,但每秒钟所完成的批操作较先前少。 系统资源(如CPU、内存、硬盘或网络等)长时间处于耗尽的状态。 通常调校的目标是以用户的期望为依据,除非你的数学与信息基本功非常扎实,否则很难知道调校的极限在哪。因此,我们的目标往往是符合用户的期盼即可
3.调校性能的第一个工作应该是建立性能的基线(baseline),所需的类型有:1)昔日系统正常运行时的数据。 2)调校前系统的各种数据。3) 用户希望达到的目标。系统响应比较慢,要知道正常是多少、慢了多少、时间差是多少、数据量多少、多少人同时上线、处理量多少等。也就是要有基线,有客观的数据,这才有好的调校基础。
4.要考虑支出,性能调校代表着成本(cost)的支出,成本可能是实质的钱,也可能是工程师的时间与精力,用户的忍耐等待。在理想状况下,是把系统中最贵的部分发挥到极限,能够以最低的成本来发挥系统最大的性能。若是自己开发的程序,这往往代表着硬件采购是系统开发中最贵的部分,因此,会采取重新设计系统的解决方式,如数据库逻辑使用方式重新切割、查询方式大量重载、以消耗内存的方式减少对硬盘的访问等。你可能要花掉数个工程师个把月的时间,才得以将架构重新规划,程序全面重载,或许花费如此的人力成本还不如直接更新设备,但性能调校的总体成本(total cost)并不容易计算。
5.要有目标,这些落于纸上的目标应越明确越好,若目标是 “我想要调低内存的使用率,因为它的值太高了”就不如“我想要调低某个程序开始获取内存的设置,因为它可能吃掉太多的内存,但实际没有用到这么多,而其他的应用程序没有足够的内存,导致整体系统性能不佳”。后者的描述有目标,且可以比较,因为实际调整后可以观察调低内存的程序执行起来是否有问题,整体的性能与没调整前是否有差异。
上述只是性能调优的概括做法,对于具体的性能调优,例如B/S结构或者数据库调优,都有各自的特点,还有从各自的需求出发,有针对性的性能调优。 学习了 看了各位对于性能调优的观点,受益不少啊,我谈谈我个人的一些见解,权当拍砖引玉
我个人觉得现在大多数的性能测试工作人员分为以下三个阶段:
1、出了问题就看资源,资源占用如果很高,报以窃喜的心态,恩,发现了,原理是资源瓶颈
2、资源没有出现瓶颈,通过一些技术手段分析,发现是组件的配置文件有问题,例如:server的并发策略有问题,带宽有问题,找到了线路短板性能中的短板,到了这个阶段在我看来是比较牛的测试拉
3、以上均无问题的情况下,考虑数据结构和算法
就我个人接触到的来说,现在大多数的人员都是在仰望第二阶段,摸索第三阶段,希望从代码级就发现出性能的问题,进行问题的发现和解决,也符合我们的bug越早发现修复的成本越低的理论。同时,也是一名性能测试工程师高薪的象征。
那么谈完了现状,回到我们的这个话题:性能调优从哪些方面入手,个人觉得有如下几点:
1、对于所测系统所设计到的知识领域的了解。例如:所测系统开发语言,牵涉到的中间件,web,app 两大server等的配置参数是什么意思,如何监控,分析它们的哪些数据等
2、注重基础知识的学习和积累。例如:对于web的性能测试,对于TCP/IP原理,基本知识,数据的转发实现,交换机和路由器的带宽设置策略对性能的影响等需要了解,掌握清楚,思路清晰
3、确定性能测试本身的有效。例如:脚本的优化,场景的设置等。因为,有些本身脚本的优化带来的执行效率的问题,往往被我们忽略,而一股脑的在那里研究是我们本身哪里出了问题
性能测试调优是一条说简单简单,要做好不是那么容易的路,共勉~~~ 1.首先要了解性能调优,一般是当用户抱怨“太慢了”、“性能不足”、“软硬件需要升级
了”等问题时,提供 ...
henry_yan 发表于 2011-11-14 17:09 http://bbs.51testing.com/images/common/back.gif
4.考虑支出非常有实际意义,如果在不改动代码的情况能提高性能这个成本比较低,所以可以优先考虑 好好学习,刚开始接触,多多指教 这个问题很不错 越来越高端了 1.3/5/8秒:能在3秒反应过来,说明很好;3-5秒,不错;5-8秒,还行;8秒后很差
2.服务器资源,是否占用率居高不下
3.数据库容量是否不够用
4.事务处理速度是否变慢,优化性能脚本
暂时只想到这么点 这个调优主要还是得状况来进行分析 田口方法,计算最优用例,从而抽取个要素的最优水准,并加以印证。 愿听高手详解…… 经验不多,来学习的飘过~~~ 关注。 :lol,性能方面涉及比较少,过来偷师的。 偶也是飘过,我觉得大家讲非常好,值得我们学习!