我有一个正在尝试加载测试的网络服务。我创建了一个程序,它产生线程来模拟多个用户连接到服务并发出请求。每个线程在死亡之前都会发出“一些”请求。每个新请求在准备就绪后都会立即发出 - 在获得响应和发出下一个请求之间几乎没有延迟。被测 Web 服务调用同一服务器上的另一个 Web 服务。
对于最多 90 个模拟用户,此过程似乎可以正常工作。然而,一旦我尝试了 100 个模拟用户,程序会在大约 6 个总处理请求后挂起。他们似乎什么也没做。模拟客户端挂起等待响应,Web 服务未接收请求。需要重新启动服务器才能恢复。
这里发生了什么?我可以与服务器建立的连接数是否有限制?我是否应该尝试“增加”负载(现在我只是尽可能快地射击它们)?
我使用的服务器是 Java Caps 5.1.3 应用程序服务器,而我用来发出请求的库是 HttpUnit 1.6.2。
后续问题 加速时间有什么好处?为什么我不能在测试开始时将所有负载推送到服务器?