• magicnum
    2019-08-08
    增大accept队列长度使得tomcat并发短连接数暴增,必然导致服务器处理完请求后需要主动断开连的连接数增加;断开连接时四次挥手的最后一个阶段,客户端要等待2mls时间来保证服务端收到了客户端的ack(如果服务端没有收到最后一次挥手ack会重试,这时客户端需要重新发送ack),这时会导致大量time_wait;一旦达到上限将导致服务器拒绝服务
    
     18
  • gogo
    2019-08-08
    老师 这个问题我查了一下别处的答案 https://mp.weixin.qq.com/s/KtcDxcY-pZBsvwJhwuKJmw

    说是tcp连接关闭的最后一步 time_wait 需要2MLS

    文中说到:
    请求方过多time_wait会导致“Cannot assign requested address”异常。

         服务方过多time_wait会导致”Too Many Open Files”异常。


    展开
     1
     3
  • 许童童
    2019-08-08
    TCP 连接处在 TIME_WAIT 状态,这个是TCP协议规定的,四次挥手时主动关闭方所处的一个状态,会等待2个MSL,所以在这个时间段内不会释放端口,如果并发量大的话,会导致端口不够用,从而影响新的TCP连接。
    
     2
  • xxxl
    2019-08-08
    老师能讲下 maxConnections 与 maxThreads 的区别和联系吗?

    作者回复: maxconnections 是连接数,maxthreads是线程数

    
     2
  • QQ怪
    2019-08-08
    保留timewait是为了是高效复用tcp连接,避免重复创建连接造成资源浪费,但过多的也会造成服务端文件打开数过多造成资源浪费
    
     1
  • 罗乾林
    2019-08-08
    连接在TIME_WAIT状态停留的时间为2倍的MSL。在2MSL等待期间,该端口不能再被使用。
    
     1
  • 我知道了嗯
    2020-01-13
    老师,目前我们线上环境在高峰会出现一种报错(与一个远程主机断开连接),然后用户页面就无法支付,没有响应。这是什么原因,我用工具发现线程都是阻塞状态,是不是因为gc了?
    
    
  • xxxl
    2019-08-18
    老师可以讲下:Jconsole 线程信息里 总阻止数和总等待数的含义吗?还有线程已启动的总数(这个数字很大)是什么意思?

    作者回复: 阻塞意味着线程在调用了lock或者synchronized等待锁,等待数表示等待某个条件变量,已启动线程总数包括了所有创建的线程,包括线程池中线程,acceptor,poller和后台线程

    
    
  • Liam
    2019-08-13
    time_waited过多会占用大量内存资源mbufs, 导致其他活跃连接无资源可用,拖慢了其他连接
    
    
  • Liam
    2019-08-13
    time_waited过多会占有大量内存资源mbufs),;/
    
    
  • gogo
    2019-08-09
    哇 老师, 您这里讲的 和 网络编程 那一专栏里讲的部分内容一致诶 难怪我读起那篇文章来没有一点违和感,原来在这里已经阅读过一遍了啊。
    
    
  • gogo
    2019-08-08
    老师 我问一个和今天讲的不相关的问题

    分布式系统里面可以使用多种不同的队列应用于不同的业务场景吗?

    分布式系统里面可以使用不用属性的分布式锁应用于不同的业务场景吗?
     1
    
  • -W.LI-
    2019-08-08
    老师好!TCP链接time_wait我和线程状态搞混了。。。我哭

    作者回复: 😄

    
    
  • nightmare
    2019-08-08
    timewait是由于什么原因引起的,tcp四次挥手的哪一个阶段?
    
    
我们在线,来聊聊吧