对于一个tcp连接来说,服务器与客户端之间需要三次握手,来建立网络的连接,当三次握手成功之后,我们可以通过netstat 命令查看端口的状态由监听转变成连接,就可以在这连接上传输数据了,对于一个监听状态的端口,都有自己的监听队列
net.core.somaxconn=65535,这个参数决定每个端口最大监听队的长度(这个参数默认值比较小,当负载很大的服务器来说是不够的,一般改成2048或更大)
net.core.netdev_max_backlog=65535 每个网络接口接收数据包的速率比内核处理数据包速率快的时候,允许为发送到队列中的数据包最大数目
net.ipv4.tcp_max_syn_backlog=65535 还未获得对方连接的请求,可保存在队列中的最大数目,超过会被抛弃
net.ipv4.tcp_fin_timeout = 10 用于控制tcp处理的等待状态时间,对于连接比较频繁系统,通常有大量连接处于等待状态。用于减少这个状态的时间,加快tcp回收速度
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
这三个参数主要用于加快tcp连接的回收
以上四个参数用于tcp连接的接收和发送缓存区大小的默认值和最大值
以上三个参数用于减少失效连接所占用的tcp系统资源,加快资源回收效率
kernel.shmmax = 4G