我在websphere 8上运行了两个webapps,第一个是接受传入请求,从第二个webapp检索数据并将响应发送到客户端。通过HTTP(Axis2)使用W3C SOAP WebServices实现通信。
使用loadUI进行负载测试时,我发现了以下行为: 顺序请求允许高负载,而并行请求几乎立即失败,第二个Web应用程序发出“连接被拒绝”消息。
Tomcat上的相同设置允许在两种情况下都有高负载。
最大打开连接数配置为500,默认线程池最多包含20个线程,默认Web容器有10个线程。
有谁知道可以帮助我的任何websphere设置?
答案 0 :(得分:4)
我找到了解决问题的方法,我希望与您分享。
每个请求都会导致Websphere Application服务器中使用两个线程,第一个Web应用程序中的一个线程和第二个Web应用程序中的另一个线程。
当我尝试并行执行5个客户端(WAS中的10个线程)的负载测试时,它仍然有效,但是并行调用10个客户端(WAS中的20个线程),它不再起作用了。所以我检查了websphere设置,发现我在websphere中配置了最多10个线程。因此,当10个客户端使用所有线程时,他们会永远等待另一个线程联系第二个Web应用程序。
所以我对每个人的建议:
执行负载测试时,请注意可通过以下路径访问的Websphere线程设置:
服务器 - >应用程序服务器 - > servername - >线程池 - > Web容器。
答案 1 :(得分:0)
这种情况下的真正问题不一定与线程池有关。在这些情况下的问题是WS(代码)不是使用线程安全功能开发的。
线程安全是问题所在。