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

3

我正在测量带宽需求以及在增加用户数量时 Web 应用的响应时间和内存需求表现如何。

这里有没有特别好的工具可以帮助我们呢?我相信 JMeter 是标准工具。但是考虑到该站点仅限于 IE,是否还有其他工具可供选择?

非常感谢你的回答。

2个回答

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。如果您没有很好的预算,那么有一个开源版本可以让您开始。但我建议购买专业版。通过它,您可以设置分布式测试环境(只需在办公室的每台计算机上安装客户端,或者像启动一堆VMs那样复杂)。
酷的是,你可以用JavaScript编写它。因此,您可以告诉它通过站点的随机延迟进行随机点击路径。这应该比您手动完成模拟用户要好得多。然后,一旦您设置好了,将测试推送到分布式引擎并开始。
它支持许多不同的负载配置文件(逐步添加负载以使测试持续一段时间等)。因此,您可以模拟斜线效应配置文件、日常使用等。
它生成的报告非常有用。它向您显示缓慢的URL,瓶颈在哪里等。
还有许多其他的测试平台和系统可用。这只是我发现的其中一个在当时(大约2至3年前)感觉工作得相当不错。我与该公司没有任何关系。

应用程序部分的负载测试

这是一种非常有用的技术称为分析。如何和工具都相当特定于语言,所以我不会在这里详细介绍(因为您的问题中没有语言标签)。但是,一旦找到一个缓慢的页面,您需要对其进行分析以确定其减速原因。然后修复最简单的部分(最慢的部分)。然后重新测试以查看是否产生了差异...

结论

由于几乎不可能模拟真实的负载,因此这更像是一门艺术而非科学。尽情尝试,享受过程。但是不要太认真地看待结果,即使进行了最好的测试,你也可能会错过某些东西...所以我不会把它们当作真理并告诉CEO你已经测试出它能够承载10万个并发用户。因为在它崩溃的那一天(如果你很幸运它会崩溃),他会责怪你,因为你告诉他它会工作...


0

我有一个想法,你说只支持IE浏览器,那么它是在IIS上托管的吗?如果是的话,你可能需要看一下微软的WCAT(Web Capacity Analysis Tool),这里提供更多信息:

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

虽然它不是开源的,但它是免费的——你需要源代码吗?


实际上,该网站只能从IE访问,但它并不总是托管在IIS上。好吧,我实际上不需要源代码,所以我可以尝试一下。谢谢你的帮助伙计! - user164701

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接