测量Web应用程序性能(压力测试)和带宽要求

时间:2011-02-25 13:32:40

标签: performance open-source jmeter

我正在测量带宽需求以及当用户数量增加时Web应用程序在响应时间和内存要求方面的行为。

是否有一个特别好的工具可以帮助我们?我相信JMeter是标准工具。但是有没有其他工具考虑该网站只是IE浏览器。

非常感谢您的回答。

2 个答案:

答案 0 :(得分:7)

嗯,问题是你想如何描述?你想模拟现实世界的活动吗?或者你只是想轰炸这个网站?

加载测试单个页面

我认为使用Apache Bench (ab)不会出错。它的使用简单,可以真正强调您的应用。我的典型用法是:

ab -c 10 -n 1000 http://www.example.com/path/to/page

-c参数是要发出的同时发出的请求数。我建议从低位开始(比如5到10)然后继续努力。观察失败请求的输出和响应率下降。在大多数Linux机器上你只能使用大约1000个连接,所以不要太疯狂。

-n参数是要发出的请求数。我建议做至少100次连续请求以获得良好的平均值...

apache bench的另一个重要用途是对单个数据库查询进行基准测试。只需创建一个运行查询的简单脚本,然后加载即可。这可以是一种非常好的方法来检测快速但昂贵的查询,这些查询会使您的服务器停止生产,但在测试中似乎很好。

负载测试整个应用程序

我和WebLoad好运。如果你没有一个可以帮助你入门的好预算,那就有一个开源版本。但我建议为专业版弹跳。有了它,您可以设置一个分布式测试环境(就像在办公室的每台机器上安装客户端一样简单,就像为它驱动一堆虚拟机一样复杂)。

很酷的是,你可以用javascript编程。因此,您可以告诉它随机延迟通过网站随机点击路径。这应该比手动模拟用户好得多。然后,一旦完成设置,将测试推送到分布式引擎并点击go。

它支持许多不同的负载配置文件(在测试期间一点一点地增加负载的阶梯式等)。因此,您可以模拟斜线效果配置文件,正常的日常使用等。

它生成的报告非常有用。它会向您显示缓慢的网址,瓶颈所在的位置等。

还有很多其他测试平台和系统。这只是我发现当时感觉工作得很好的一个(我在2到3年前进行了比较)。我不以任何方式与公司有任何关系。

负载测试应用程序的部分

这是一种非常有用的技术,称为分析。如何和工具是相当语言的,所以我不会在这里详细说明(因为你的问题上没有语言标签)。但重点是,一旦找到慢速页面,您需要对其进行分析以找出减慢速度的因素。然后修复低垂的水果(最慢的部分)。然后重新测试,看看你是否有所作为......

结论

由于模拟现实世界的负荷几乎是不可能的,因此这更像是一门艺术而非一门科学。拥有它,并享受乐趣。不要认真对待结果,即使进行了最好的测试,你也可能会错过某些东西 ...所以我不会把它当作福音来告诉CEO你测试过了它能够容纳100k用户。从崩溃发生的那天起(如果你很幸运会崩溃),他会责备你,因为你告诉他它会起作用......

答案 1 :(得分:0)

只是一个想法,你说IE只是因为它托管在IIS?如果是这样,那么你可能想看看Microsft的WCAT(Web容量分析工具),更多信息可以在这里找到:

http://support.microsoft.com/kb/231282

虽然它不是开源但它是免费的 - 你需要源吗?