文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程J2EE/J2ME调整压力测试工具
精品推荐
特别推荐
·J2EE Web开发技术期待一次新的技术变革
·J2ME程序开发初学者快速入门的九大要点
·使用技巧:J2ME中程序优化的十个小方法
·RMS从入门到精通之一
·J2EE应用程序中SQL语句的自动构造方法
·解决J2EE系统应用性能问题常用优化项目
·J2EE实用技巧:提升JSP应用程序的绝招
·J2ME内存优
·J2ME简介
·J2EE技术
热点TOP10
·FC API(JSR 75)简单讲解
·J2ME程序开发初学者快速入门的九大要点
·游戏框架之心得体会(1)
·在J2EE中APPLET和HTML作为客户端的比较
·Eclipse入门?使用指南及开发Eclipse插件
·jboss配置系列第一天
·一个2D图形绘画的案例
·类似卫星扫描效果
·扫描屏幕和颜色渐变的效果
·一个基于MIDP的迷宫游戏

调整压力测试工具

日期:2008年6月15日 作者: 查看:[大字体 中字体 小字体]


    您是否曾经不得不对应用程序进行压力测试,而最后却发现不明白结果表明什么意义?也许问题不是出在应用程序上。也许问题出在配置压力测试工具的方式上。如果您曾经经历过这种情况,或者正要进行压力测试,您就需要考虑以下几个方面。

如何进行测试?

  我经常遇到一些开发团队,他们收到诸如“客户端将每小时处理20个客户”此类的性能需求。团队就试图把该需求转化为某种测试。执行这种测试的常见方法就是以死循环的形式对服务器进行反复请求,然后静观其效。通常事情进行得不是很顺利,这就是为什么随后我会作为一个性能专业化方面的顾问“遇见他们”的原因。通常我问的第一个问题是:“您是如何进行测试的?”一般来说,答案会是:“我们将请求置于循环中,然后计算服务器可以处理的请求的数目。”正是这种回答使我明白首先要做的就是调整测试工具本身。

  如果您不明白上述测试有什么问题,不要担心——有很多人和您一样。进行一次切实可行的压力测试并不像乍看之下那么简单。遇到的问题可能非常微妙,而且通常只有采用不那么简单的方法来理清情况才能看清问题。但是这并不是让您目光呆滞地深入研究马尔可夫链(Markov chains)、状态改变模型、排队理论、概率分布等等,让我们以一种不那么乏味的、更通俗易懂的方式来说明如何解决这个在许多压力测试中出现的常见问题。

测试方式将影响测试

  我们首先要明白的是,虽然测试通常都是从客户端活动的角度定义的,但是它们必须从以服务器为中心的视角来看待。以服务器为视角将只看到客户端访问的频率和处理每个请求所花费的时间。让我们考虑一个典型例子,即银行的出纳员。出纳员通常不知道您是什么时候到的,也不知道您是从哪里来的。他们所知道的只是您在这里,而且您要让他们为您做一些事情。现在,队列中有多少人将取决于人们到达的速度,以及满足他们的要求所花的时间。

  比队列中有多少人更重要的是,随着后来的人不断补进队列,房间中的人数是在减少、保持不变还是在增加?与之相随的另一个问题是,人们进入队列的速度与离开的速度相比,是快一些、相同还是慢一些?如果离开的速度要比到达的速度快,那么处理请求的速度要比递交请求的速度快。第二种情况说明刚刚处理完一个客户,下一个就到达了。最后一种情况则说明人们到达的速度要比处理的速度快。用数学术语来说,第一种系统是收敛的,第二种处于稳定状态,第三种则是发散的。这三种情况中房间中的人数都是由利托氏定理(Little's Law)决定的。

只做力所能及的

  对于外行来说,利托氏定理说明了您只能做这么多工作。其数学版本是这么说的:系统中的请求数等于请求到达的速度乘以它们在系统中的时间所产生的积。如果它们在系统中的时间取决于流出系统的速度(通常称为服务时间),那么就可以通过观察请求到达的频率(请求到达间隔时间)并与服务时间比较,而确定系统处于哪种状态。

  对于每种情况,利托氏定理都描述了系统是如何处理工作负载的。虽然状态可能会发生瞬时的迸发和间歇,总体的趋势还将由平均的状况决定。例如,在收敛系统中,可能会由于许多人同时进入队列而产生瞬时的暴涨,但是队列仍将会腾空,因为收敛系统的倾向就是趋向空闲。但是,第三种场景是发散的,其中的请求数将会无限增长。它会吗?这个问题的答案与如何定义发出请求的全域有关。

  在某个随机的时间点,全域中的用户将发出一个请求。这肯定是从以服务器为中心的视角来看全域了。大多数系统都基于一个假设,即在任一个给定的时间点,全域中只有一部分会发出请求。经验告诉我们,在许多因特网应用程序中,全域中有10%在任意时间点都是活动的。我们需要知道这种信息,如果我们要定义实际的压力测试的话。例如,如果全域中有1000个用户,我们会预料有100个每时每刻都在使用系统。由于我们估计会有10%的并发使用,用户库又有1000个用户,所有我们的测试应该模拟100个用户重复执行一些请求系列。用这种方法定义测试的危害是它反映的是客户端的视角。

  当我们从以服务器为中心的视角转向以客户端为中心的视角后,就看不到向服务器发送请求的速度了。如果我们限制或固定为执行用户请求所分配的用户(线程)数目,那么就看得更模糊了。在这种情况下进行测试,我们将看到服务器正在处理稳定的请求流,而处理请求的时间似乎越来越长。

每个人都可以参与

  如果我们让模拟线程尽可能快地发出请求,就是在模拟整个全域(甚至更多)的用户都在同一时间发出请求。我们假定服务器模型为单一的,因为这样便于理解;多服务器模型的工作方式是相同的,只是更快一些。系统将把请求排队,并且每次只处理一个。一旦有一个请求清除,线程会立即返回队列头部发出下一个请求。虽然这种事件顺序似乎说明我们处理的是一个稳定状态的系统,但我们实际上是在处理发散系统。它之所以看起来像稳定状态系统的惟一原因是,我们限制了发出请求的线程数目。正如前面所提到的,在发散系统中,每个后继用户的响应时间都要比前一个所经历的时间长。这意味着平均响应时间将不断地增长而没有限制。尽管如此,但是我们人为地限制了客户端的数目,因此平均响应时间将稳定在一个点上,该点取决于客户端数目与处理单个请求所花费时间的乘积。这里所说的这种系统中的响应时间包括花在队列中的时间,而且因为花在队列中的时间比预料的要少,所以我们又人为扩大了测量值。最终结果是您的测试限制了您确定系统的可伸缩性的能力。

如何修复


[1] [2] [3] 下一页 




上一篇:实战程序管理器和多语言程序

下一篇:WPA与WML常见问题(FAQ)

相关文章:
·最受欢迎的网管工具集
·迎刃而解——破解密码的常用工具
·常用的网络测试命令
·3GP手机视频转换工具WinAVI
·无线网络密码恢复工具最新版下载
·性能分析工具的使用
·暑期英语学习之单词工具篇
·图文详解:如何调整光驱激光头功率
·性爱测试----【测验】妳是玉女还是欲女?
·十大AdSense工具! Top 10 Adsense Tools
相关软件:
·灵豚课件制作工具——课件精灵v1.0 beta
·电脑装机、系统维护工具盘 2003版
·U盘超级工具大全
·深山红叶袖珍PE系统工具箱《玩电脑》特别版
·JPG超强浏览压缩工具 V2.1
·液晶显示器亮点坏点修复工具 V0.1
·女性压力与保健
·发烧天碟PHILIPS- 耳机测试CD
·豪杰超级视频转换工具V2.0
·中國古典書鈔之諸子集鈔(0510测试版79种)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot