标签:Linux 内核参数
Linux系统出现性能瓶颈(IO/CPU/MEM)时如其大费周章进行软件调优,还不如从硬件方面来解决更合理,软件方面的调优性能增加是微乎其微的。因为在系统部署初期已经对参数进行了合理的设置。当Linux服务器完成安装,我们需要进行一些合理的设置
在看这些参数前需要理解TCP/ip三次握手与四次挥手原理与过程,这样有助于理解这些参数
#对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间
net.ipv4.tcp_fin_timeout = 2
#表示是否允许将处于TIME-WAIT状态的socket重新用于新的TCP连接,(这个对快速重启动某些服务,而启动后提示端口已经被使用的情形非常有帮助)
net.ipv4.tcp_tw_reuse = 1
#打开快速 TIME-WAIT sockets 回收
net.ipv4.tcp_tw_recycle = 1
#当出现syn等候队列出现溢出时象对方发送syncookies。目的是为了防止syn flood攻击。
net.ipv4.tcp_syncookies = 1
#TCP发送keepalive探测消息的间隔时间(秒),用于确认TCP连接是否有效。防止两边建立连接但不发送数据的攻击。
net.ipv4.tcp_keepalive_time = 600
#表示用于向外连接的端口范围
net.ipv4.ip_local_port_range = 4000 65000
#对于那些依然还未获得客户端确认的(sync)连接请求﹐需要保存在队列中最大数目。对于超过 128Mb 内存的系统﹐默认值是 1024
net.ipv4.tcp_max_syn_backlog = 16384
#系统在同时所处理的最大timewait sockets数目
net.ipv4.tcp_max_tw_buckets = 36000
#路由缓存刷新频率, 当一个路由失败后多长时间跳到另一个,默认是300
net.ipv4.route.gc_timeout = 100
#对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。
net.ipv4.tcp_syn_retries = 1
#对于远端的连接请求SYN,内核会发送SYN +ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手( threeway handshake)机制的第二个步骤。这里决定内内核在放弃连接之前所送出的 SYN+ACK 数目。
net.ipv4.tcp_synack_retries = 1
#用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制。
net.core.somaxconn = 16384
#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog = 16384
#系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量﹐那么不属于任何进程的连接会被立即reset,并同时显示警告信息。
net.ipv4.tcp_max_orphans = 16384
对于参数的相关英文解释可以看帮忙文档man tcp
标签:Linux 内核参数
原文地址:http://blog.51cto.com/seneagle/2108804