Http Web 服务负载测试
Posted
技术标签:
【中文标题】Http Web 服务负载测试【英文标题】:Http Web Service Load Test 【发布时间】:2008-11-26 12:27:22 【问题描述】:我有一个正在尝试加载测试的 Web 服务。我创建了一个程序,它产生线程来模拟多个用户连接到服务并发出请求。每个线程在死亡之前都会发出“一些”请求。每个新请求一准备好就会发出 - 在获得响应和发出下一个请求之间几乎没有延迟。被测 Web 服务调用同一服务器上的另一个 Web 服务。
这个过程在最多 90 个模拟用户的情况下似乎都能正常工作。然而,一旦我尝试了 100 个模拟用户,程序会在大约 6 个总处理请求后挂起。他们似乎什么也没做。模拟客户端挂起等待响应,Web 服务未接收请求。需要重启服务器才能恢复。
这里发生了什么?我可以与服务器建立的连接数是否有限制?我是否应该尝试“增加”负载(现在我只是尽可能快地发射它们)?
我使用我们的 Java Caps 5.1.3 应用程序服务器和用于发出请求的库是 HttpUnit 1.6.2。
后续问题 加速时间有什么好处?为什么我不能在测试开始时将所有负载推送到服务器?
【问题讨论】:
【参考方案1】:看到这种情况可能有多种原因,您可以尝试以下方法找出原因。希望他们有所帮助:
1.使用加速
使用适当的加速,例如至少 1 个用户/2 秒左右。如果使用 Ramp-up 可以解决您的问题,那么它肯定是连接数问题。
2。代码审查
彻底检查您编写的加载注入代码,在某些情况下是否存在未退出的循环/线程。
您还可以使用分析实用程序,例如JENSOR 找出哪个方法进入死锁并导致服务器无响应。
另外,检查您的网络服务器上的这些参数并调整它们并进行测试
最大线程数 最大进程数 MaxSessionCountAnswer for Follow-up Question
加速模拟真实场景,同时为 Web 服务器提供喘息的空间。在进行负载测试时,模式应该与现实生活中的模式相似,以获得准确且可扩展的预测。
在此过程中发挥最重要作用的参数是:
加速 思考时间 调整黑白迭代 交易组合 没有。并发用户数【讨论】:
【参考方案2】:后续问题解答
加速模拟真实场景,同时为 Web 服务器提供喘息的空间。在进行负载测试时,模式应该与现实生活中的模式相似,以获得准确且可扩展的预测。
在此过程中发挥最重要作用的参数是:
加速 思考时间 调整黑白迭代 交易组合 没有。并发用户数【讨论】:
【参考方案3】:我认为您应该尝试使用JMeter 进行负载测试。它拥有所有加速的东西。 This PPT presentation 比较两者,所以你可以看到哪个更适合你。
【讨论】:
以上是关于Http Web 服务负载测试的主要内容,如果未能解决你的问题,请参考以下文章