最近遇到多台CVM中客户端访问服务器端超时的异常,当时查看了netstat -as信息,凭经验判断可能是tcp overflowed导致的。网卡队列满了,可能会造成子机网络包重传现象
但是全连接和半连接是什么回事呢?我们一起探究探究
这个得从TCP三次握手说起,
相信大家对三次握手都了然于胸,但是如果把这个过程放到linux环境下,结合linux内核的实现逻辑后是个什么形态呢?
这里有两个队列:
三次握手过程详情:
netstat -as
如下图中所示信息:
全连接队列满了:xxx times the listen queue of a socket overflowed
半连接队列满了:xxx SYNs to LISTEN sockets dropped
可以通过监控数值是否增加,来判断是否存在异常
调高
net.core.somaxconn
net.ipv4.tcp_max_syn_backlog
同时,提升 listen(fd, backlog) 的 backlog
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。