当我将大约100个用户发送到我的web服务时,我得到响应,web服务执行得很好,但是当我检查1000个并发用户时,没有一个请求得到回复。
我在用计量器做测试。
当我发送1000个并发用户时,我的glassfish管理面板在浏览器中超时,它在4到5分钟后打开,only.Same发生在wsdl中。
我已经在我们的局域网上测试了我的web服务,它可以用于2000次查询,没有任何问题。
请帮我找个解决办法。
编辑1.0
更多的发现
嗨,根据你的建议,我所做的只是简单地返回了web服务函数调用上的字符串,没有查找,没有刀,什么都没有.只是返回一个字符串
线程池是2000,没有问题。
现在,当我为1000个用户运行j测量仪时,它们运行得非常快,并返回了大约200个请求的响应。
因此,这意味着我的PC运行带有i5处理器和4GB内存的Windows 7的主机正在执行具有xeon 5*8内核的4GBRAM的hostgator专用服务器:(
这不是为了每月支付220美元.
如果我的发现是错误的,我会在局域网b/w两台pc上测试我的应用程序,它可以顺利地处理2000+msgs
编辑1.1
经过大量的阅读和实践,我得出的结论是网络延迟是造成这种行为的原因。
我在glassfish的管理面板中增加了bean池的大小,它帮助将并发用户的数量提高到300个,但是不管我在池中保存了多少bean,问题还是再次出现。
所以朋友的问题是:请建议一些其他的设置,我可以改变玻璃鱼的管理面板,以消除这个问题的根源!
发布于 2012-08-01 04:57:09
您需要为服务执行的各个步骤添加一些性能日志。它会执行多个步骤吗?计算速度慢吗?数据库访问速度慢?你的连接池不是很好吗?是否需要在web服务器中进行调整以允许如此高的并发性?您需要对这些事情进行度量,以找到瓶颈,以便消除它们。
发布于 2012-08-13 10:30:53
我在服务器中也遇到了同样的问题(同时使用200+用户),我研究了官方的玻璃鱼调优指南,但是有一个非常重要的参数没有出现。我也使用了Jmeter,在我的例子中,时间响应呈指数增长,但是服务器的处理器仍然很低。
在glassfish管理服务器(configurations/ server /Network/ users /http-线程池)中,您可以看到您的服务器可以处理多少用户。(玻璃鱼2和3的参数不同)。
最大队列大小:队列中的最大线程数。值-1表示队列大小没有限制。 最大线程池大小:线程池中的最大线程数 最小线程池大小:线程池中的最小线程数 空闲线程超时:线程可以在池中保持空闲的最大时间。此时间过期后,线程将从池中移除。
我建议您将Max线程池大小设置为100或200以解决此问题。
还可以设置另一个JMV变量,例如:
-Xmx/s/m -server -XX:ParallelGCThreads -XX:+AggressiveOpts
希望能帮上忙。
https://stackoverflow.com/questions/11752587
复制相似问题