请问系统瓶颈是指什么?
系统瓶颈,是指它的响应时间吗?要则出那几方面才知到瓶颈? 看下面的试意图,再想想
---- >|-----------D1(口径)-----|<
系 | |
统 | |----------CPU
运 | |
行 |_ _ _ _ _ _|
高 | |
速 | |--------------------RAM
公 >|---D2--|<
路 _ _| |_ _
--- | |
>|--------D3--------|<--------------database
|_ _ _ _ _ |
| |
>|D4|<---------------------net_intertface
| |
以上图所示的是你测试的系统运行时,所要用到的“资源",(假若所有资源都化成统一单位,即D(如高速公路_路宽)),试想如果你配置D1口径的CPU,而你所用的网络速度口径只为D4,那么你的整个系统的处理速度也就仅为D4,D1口径的CPU等大于D4的系统资源都被浪费掉了,这时,我想网络速度就是所谓的系统”瓶颈";但它不是绝对的,如果你把网络速度D4提高到大于D2的水平,那么这时你的系统的瓶颈又变成了RAM;依次类推.........
所以进行性能测试,首先你要弄清你的系统运行所需要那些资源;然后添加相应的资源计数器,进行计录它们的数值即我所谓的口径;然后进行对比,就会发现影响系统的到底是“高速公路上那一段堵车",然后再找到这个点,进行分析处理;如果是cpu达到90%以上,而其它很低,换个速度快的cpu试试;如果访问database响应时间很长,换个数据库或更改数据库访问算法再试试等等(像测试结果中的一些http404等类似的错误都是一种错误特征);如果整个系统资源都没有超过警戒线,如果此时已经满足了你们的事先设计的系统运行资源指标和并发数,ok性能测试通过,但如果还没满足,增加并发量;
大概就是这样,呵呵,偶的一些看法.
[ Last edited by kai_top on 2005-11-1 at 09:44 ] 好贴,顶了~~~~~~~~~~~ 哦,即是瓶颈可以观察cpu负载,内存的可用资源,数据库响应时间,接口的错误等等吧。
谢kai_top,明白了许多。 针对程序的优化同样如此,必须保证牵涉到的所有部分都能达到要求。
例如:
1.前台收费界面达不到性能指标,需优化。
2.检查程序,检查收费表,改成对并发支持。
3.重新做测试,仍然达不到要求。
4.重新检查,最后发现在生成唯一序列号时采用的是一张表中的一条记录,获取是通过取数据,+1,update。这种方式造成了所有人都需要对此记录的争用(虽然对表做了行锁,但此方式行锁已经无用了)。
5.修改生成序列号算法,重新测试,通过。
以上例子说明查找瓶颈时,相关所有的资源都必须要去检查,而不是只关心局部位置。 呵呵 。楼上的辛苦了,顶~~~~ 好贴,前两天做测试,领导就让我们写测试瓶颈,大家都很茫然,不知道什么是瓶颈,谢谢kai_top 和 linkage 这个帖子是很好的,可我还是不是很明白,瓶颈就是通过添加性能监视器来找的,判断它是瓶颈的标准是什么呢?有没有一个标准呢? 监视器是不是等于计算器?看了linkage说法,我觉得用一个大的标准来概括是没有可能的,因为瓶颈有很多。大至一个服务器,小至一个图片,都有可能应响速度,都可能是瓶颈,不知linkage是否这个意思。只能用一个个监视器,作一一判断,每一个监视器作用都不同,要怎样判断,和每一个监视器要达到何标准才通过.真的搞到头昏,望有那位长者,能告知一两个监视器的作用和标准,真的感谢万分。 我觉得kai_top的描述很有道理,瓶颈就是木桶的最短的那块木板,就是我们的系统中导致整个性能达不到要求的那部分,这个可以是硬件,更可能是软件,像是程序没有优化,数据库的设置有些问题。
我们作性能测试的目的,就是通过对系统施加一定的压力,或者通过模拟正常的用户使用(当然其中需要监视系统的各个部分和环节),使系统的问题暴露出来,通过我们监视的数据,来发现究竟是那个环节的问题导致了系统的不能满足需要。
因此,我以为,监视器只是工具,在无法判断的情况下,我们需要的是尽可能的收集数据,测试之后,进行深入的分析,才可能判断出系统的可能所在,进行相应的改进。有时候,只能分析出可能的原因,那就要一个个试验,多次的测试,将测试结果对比分析,寻找真正的问题。这其中,开发人员的帮助必不可少。所示性能测试是测试和开发人员合作的工作,合作才更有可能发现问题,改进系统。 同意fubaiciti 的观点,做性能测试要和开发人员合作,时时的发现问题。 我现在正在做性能测试,刚刚接触LoadRunner并用它来测我们的一个购物车系统,老板没有给出明确的需要达到的性能指标, 而是针对目前客户网站的日均在线量3000来定,请问, 就日均3000的量,除并发用户数,事物响应时间等还应该给出哪些参考值? LoadRunner的虚拟用户数与实际用户数的关系是50:1吗, 也就是loadRunner上1个用户通过等于实际50用户通过吗? 那个大侠能否在讲明确些呢?觉得那样的范围有些广了,能否在具体点呢,谢谢!
多谢kai_top \linkage\fubaiciti
多谢kai_top \linkage\fubaiciti :) 有收获 哈哈,都是大侠
页:
[1]