这两天做了一个测试高并发的实验
测试方法
创建n个线程,同时对一个http地址请求
报了好多错,实在看不懂那儿的问题。
服务器端resin设置:
thread-max:256
socket-timeout:65s
keepalive-max:1024
keepalive-timeout:15s
我创建了 1000个线程,每个线程循环访问服务器的一个url 10次,系统一直报
java.net.connectException:Connection refused:Connect
at java.net.PlainsocketImplSocket.Connect异常
我又用 10000个线程来访问,系统刚开始报
java.net.connectException:Connection refused:Connect
at java.net.PlainsocketImplSocket.Connect异常,过了会儿又报
java.net.connectException:Connection timed out:Connect
at java.net.PlainsocketImplSocket.Connect异常
我网上查了好久,也没搞明白,什么时候会报 Connection refused:Connect
什么时候回报 Connection timed out:Connect
报这两种异常的原因是什么?
如果是服务器的线程数达到最大个数256,再次发送请求的时候,是会报错呢还是会等待服务器端执行完线程了再来connect?
socket-timeout和keepalive-timeout设置的时间分别代表什么呢?有什么区别呢?对于请求有什么影响呢?
keepalive-max又代表什么呢?如果活动链接个数达到上限1024了,再次请求有什么影响呢?
3 个解决方案
#1
我网上查了好久,也没搞明白,什么时候会报
Connection refused:Connect
什么时候会报 Connection timed out:Connect
ps:发完贴发现黄色的字看不清楚,再把这两句补充一下
什么时候会报 Connection timed out:Connect
ps:发完贴发现黄色的字看不清楚,再把这两句补充一下
#2
web容器socket回收不及时,导致拒绝服务了
#3
socket应该在什么时候回收呢?keepalive-timeout之后,还是socket-timeout之后,还是一次请求之后立即回收?
#1
我网上查了好久,也没搞明白,什么时候会报
Connection refused:Connect
什么时候会报 Connection timed out:Connect
ps:发完贴发现黄色的字看不清楚,再把这两句补充一下
什么时候会报 Connection timed out:Connect
ps:发完贴发现黄色的字看不清楚,再把这两句补充一下
#2
web容器socket回收不及时,导致拒绝服务了
#3
socket应该在什么时候回收呢?keepalive-timeout之后,还是socket-timeout之后,还是一次请求之后立即回收?