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

标签 performance open-source jmeter

<分区>

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

是否有特别好的工具可以帮助我们解决这个问题?我相信 JMeter 是标准工具。但是考虑到该站点仅适用于 IE,是否还有其他工具。

非常感谢您的回答。

最佳答案

好吧,问题是你想如何描述?你想模拟真实世界的事件吗?或者你只是想轰炸网站?

加载测试单个页面

我认为使用 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 对其进行编程。因此,您可以告诉它采用具有随机延迟的随机点击路径通过站点。这应该比您手动模拟用户更好。然后,一旦你设置好了,将测试推送到分布式引擎并点击开始。

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

它生成的报告非常有用。它会向您显示慢速 URL、瓶颈所在等。

还有许多其他测试平台和系统。这只是我发现我当时觉得工作得很好的一个(我在大约 2 到 3 年前做了一个比较)。我与公司没有任何关联。

应用程序的加载测试部分

这是一种非常有用的技术,称为分析。如何和工具是相当特定于语言的,所以我不会在这里详细介绍(因为你的问题没有语言标签)。但要点是,一旦您发现一个速度慢的页面,您就需要对其进行概要分析以找出导致其速度变慢的原因。然后修复低垂的果实(最慢的部分)。然后重新测试,看看你是否有所作为......

结论

由于模拟真实世界的负载几乎是不可能的,因此这更像是一门艺术而不是一门科学。尽情享受吧,玩得开心。不要把结果当真,即使进行了最好的测试,您也可能会错过某些东西...所以我不会把它们当作福音并告诉 CEO 您测试了它能够支持 10 万个并发用户。因为当它崩溃的那一天发生时(如果你幸运的话它会崩溃),他会责怪你,因为你告诉他它会起作用......

关于performance - 测量 Web 应用程序性能(压力测试)和带宽要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5117828/

相关文章:

testing - JMeter- 从 CLI 运行时不会替换属性值

python - JMeter 中命令行参数的最大数量问题

MYSql搜索性能问题

python - PyCurl 需要很长时间才能执行

git - 无法向上游推送的开源项目补丁如何管理?

git - 支持 Git 的开源 IDE

JMeter - 如何对与页面相关的所有请求进行分组以提供更清晰的结果?

performance - spark.sql.shuffle.partitions 和 spark.default.parallelism 有什么区别?

MySQL 使用索引更新查询速度极慢

security - 软件开源是否会使其变得脆弱?