针对Nginx应用优化Linux系统内核

高性能Linux服务器构建实战 20页

vim /etc/sysctl.conf

net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 30


参数解释
net.ipv4.tcp_max_tw_buckets = 6000         timewait数量,默认18000,这里设置为6000
net.ipv4.ip_local_port_range = 1024 65000  允许系统打开端口范围
net.ipv4.tcp_tw_recycle = 1                启用timewait快速回收
net.ipv4.tcp_tw_reuse = 1                  开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接
net.ipv4.tcp_syncookies = 1                开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies进行处理

net.core.somaxconn = 262144                默认128,阿里云65535 用于调节系统同时发起的tcp连接数,在高并发的请求中,默认的值可能会导致
                                           链接超时或重传,因此,需要结合并发请求数调节些值
                                       
net.core.netdev_max_backlog = 262144       表示当每个网络接口接收数据包的速率比内核处理这些包速度快时,允许发送到队列的数据包的最大数目

net.ipv4.tcp_max_orphans = 262144          设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上.如果超过这个数字,孤立连接将
                                           立即被复位并打印出警告信息.这个限制只是为了防止简单的DoS攻击.不能过分依靠这个限制甚至人为减小
                                           这个值,更多情况应该增加这个值
                                       
net.ipv4.tcp_max_syn_backlog = 262144      选项用于记录那些尚未收到客户端确认信息的连接请求的最大值.对于有128MB内存的系统而言.此参数默认值为1024
                                       
net.ipv4.tcp_synack_retries = 1            决定了内核放弃连接之前发送SYN+ACK包的数量

net.ipv4.tcp_syn_retries = 1               表示在内核放弃建立连接之前发送SYN包的数量 如果发送端要求关闭套接字,net.ipv4.tcp_fin_timeout选项
                                           状态的时间.接收端可以出错并永远不关闭连接,甚至意外宕机
                                       
net.ipv4.tcp_fin_timeout = 30              默认60 决定了套接字保持在FIN-WAIT-2状态的时间.正确设置这个值非常重要,有时即使一个负载很小的Web
                                           服务器,也会出现大量的死套接字而产生内存溢出的风险.FIN-WAIT-2的危险性比FIN-WAIT-1要小,因为它最多
                                           只消耗1.5KB的内存,但是生存期长些
                                       
net.ipv4.tcp_keepalive_time = 30           默认为2(单位是小时) 当keepalive启用的时候,TCP发送keepalive消息的频度.


你可能感兴趣的:(针对Nginx应用优化Linux系统内核)