打开/etc/sysctl.conf
net.core.somaxconn=65535 用来限制监听(LISTEN)队列最大数据包的数量,默认是128,超过这个数量就会导致链接超时或者触发重传机制.对繁忙的服务器,增加该值有助于网络性能.可调整到256
net.core.netdev_max_backlog=65535 每个网卡接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.ipv4.tcp_max_syn_backlog=65535 默认1024,对重负载服务器,可调整到2048,以以容纳更多等待连接的网络连接
net.ipv4.tcp_fin_timeout=10 默认值60,这个参数决定了它保持在FIN-WAIT-2状态的时间,参考值 30(一般来说FIN-WAIT-2的连接也极少)
net.ipv4.tcp_tw_reuse=1 表示开启重用。允许将处于TIME-WAIT 的socket重新用于新的TCP连接,默认为0,表示关闭,根据TCP/IP协议,连接断开之后,端口不会立刻被释放,而是处于TIME_WAIT状态,等待两分钟半后,才会被释放掉,才能被新连接使用,大量并发的情况下,如果已被占用的端口号未被释放,部分新建连接因为无法分配到端口号而失败。通过配置TCP_TW_REUSE参数,来释放TIME_WAIT状态的端口号给新连接使用
net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭.
net.core.wmem_default=87380 默认的发送窗口大小(以字节为单位)
net.core.wmem_max=16777216 最大的TCP数据发送缓冲,参考值 873200
net.core.rmem_default=87380 默认的接收窗口大小(以字节为单位)
net.core.rmem_max=16777216 最大的TCP数据接收缓冲,参考值873200
下面三个一起意思是如果某个TCP连接在idle 2个小时(120s)后,内核才发起探测(probe)。如果probe 3次(每次30秒)不成功,内核才彻底放弃,认为该连接已失效,对服务器而言,默认值太大. 参考值如下:
net.ipv4.tcp_keepalive_time=120
net.ipv4.tcp_keepalive_probes=3
net.ipv4.tcp_keepalive_intvl=30
vm.swappiness=0 设置0即出非虚拟内存完全满了,否则不使用交换分区的空间
linux主要内核调优
最新推荐文章于 2024-03-10 11:45:50 发布