用于在高负载(500kb及更高)下对Http请求进行负载测试的工具

时间:2014-12-03 11:50:22

标签: java performance http jmeter load-testing

我想在我的应用程序上使用高负载http请求进行负载测试。
面临的问题: - 1)当我把如此高的有效载荷放在其中时,Jmeter挂起。

2)Apache基准测试ab - 脚本: -
ab -c 1 -n 1 -v 4 -t 80000 -p payload.json -r localhost:8080 / Scheduler-rest / schedule
我不知道为什么它会发送无限数量的请求c和n的任何值。

3)邮递员客户: - 我用它来发送一个或两个请求,但邮递员不接受这么高的有效载荷。

那么有人可以推荐一些东西吗?

由于

4 个答案:

答案 0 :(得分:2)

JMeter应该能够发送不少于其他工具的请求/秒,但是您需要:

  1. 以非GUI模式运行
  2. 删除所有侦听器
  3. 调整默认JVM堆和垃圾收集设置
  4. 当1个主实例控制多个从属时,可以在分布式模式下运行JMeter
  5. 有关详细说明,请参阅以下资源:

答案 1 :(得分:1)

您可以使用Blazemeter或Neoload工具,这些工具可以让您运行如此繁重的测试场景。 在Blazemeter中,您可以指定no。具有用户分布和目标站点的节点。这同样会在目标站点上产生负载。

类似的东西也可以通过Neoload完成。 两者的缺点是在没有。他们按用户收费的用户。

如果您拥有自己的一套机器,也可以使用分布式Jmeter客户端。

答案 2 :(得分:0)

我可以推荐使用Phantom负载发生器的Yandex Tank(用C ++编写的非常快(100 000+ RPS)射击游戏)。 你可以在这里找到的一切: https://github.com/yandex/yandex-tank

答案 3 :(得分:0)

我们已成功运行Jmeter,其中包含1个(双核2GB内存)的300个同步线程,并具有GUI模式。

应用程序的响应总是存在延迟的可能性,这会使jmeter的线程等待并挂起。最好一步一步走(我已经给出了windows pc的通用步骤,你可能会发现类似于其他操作系统)

  1. 尝试按照dmitri
  2. 的说法调整JVM堆和垃圾设置
  3. 调整TCP参数(如果使用远程网络服务器,则还需要对其进行调整)。 http://support.microsoft.com/kb/314053(Windows 7中提供TCP自动调整)
  4. 检查网络适配器设置(双工) http://msdn.microsoft.com/en-us/library/cc339518(v=vs.90).aspx
  5. 检查网络服务器中的数据源设置是否足以处理传入的负载
  6. 逐步进行(逐个测试10,50,100,200,300个线程)
  7. 不要使用响应断言进行负载测试(使用它们检查您的cript在进行测试时是否表现良好,但是对于实际负载测试,不建议使用它)
  8. 调整所有图层后,仍有问题(或)想要尝试更多用户,使用非GUI模式/分布式模式。
  9. 我的2美分 - 如果不调整测试环境,任何工具都很难做出回应。