linux 内核优化

#TIME_WAIT最大量
net.ipv4.tcp_max_tw_buckets = 2000000
#开启通过有选择地应答乱序接收到的报文来提高性能,让发送者只发送丢失的报文段
net.ipv4.tcp_sack = 1
#开启IP转发功能
net.ipv4.ip_forward=1
#支持更大的TCP窗口. 如果TCP窗口最大超过65535(64K), 必须设置该数值为1
net.ipv4.tcp_window_scaling = 1
#将Linux自动调优TCP缓冲区限制增加到4MB
net.ipv4.tcp_rmem = 4096  87380   4194304
net.ipv4.tcp_wmem = 4096  87380   4194304
#探测消息未获得响应时,重发该消息的间隔时间(秒)
net.ipv4.tcp_keepalive_intvl = 15
#在认定TCP连接失效之前,最多发送多少个keepalive探测消息。
net.ipv4.tcp_keepalive_probes = 5
#对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间(秒)。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。
net.ipv4.tcp_fin_timeout = 1
#TCP发送keepalive探测消息的间隔时间(秒),用于确认TCP连接是否有效。
net.ipv4.tcp_keepalive_time = 1200
#确定TCP栈应该如何反映内存使用,每个值的单位都是内存页(通常是4KB)。第一个值是内存使用的下限;第二个值是内存压力模式开始对缓冲区使用应用压力的上限;第三个值是内存使用的上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的BDP可以增大这些值(注意,其单位是内存页而不是字节)。
net.ipv4.tcp_mem = 94500000 915000000 927000000
#允许将处于TIME-WAIT状态的socket(TIME-WAIT的端口)用于新的TCP连接 。
net.ipv4.tcp_tw_reuse = 1
#关闭TCP时间戳
net.ipv4.tcp_timestamps = 0
#内核在放弃连接之前所送出的 SYN+ACK 数目,等待tcp_syn_retries秒
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
#最大的TCP数据接收窗口(字节)。
net.core.rmem_max = 16777216
#最大的TCP数据发送窗口(字节)。
net.core.wmem_max = 16777216
#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog =  327680
#系统中每一个端口最大的监听队列的长度
net.core.somaxconn = 327680
#对于还未获得对方确认的连接请求,可保存在队列中的最大数目。如果服务器经常出现过载,可以尝试增加这个数字
net.ipv4.tcp_max_syn_backlog = 2000000
#默认的TCP数据发送窗口大小(字节)。
net.core.wmem_default = 8388608
#默认的TCP数据接收窗口大小(字节)。
net.core.rmem_default = 8388608
#在认定出错并向网络层提交错误报告之前,重试多少次
net.ipv4.tcp_retries1 = 2
#TCP失败重传次数
net.ipv4.tcp_retries2 = 5
#在近端丢弃TCP连接之前,要进行多少次重试
net.ipv4.tcp_orphan_retries = 2
#设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上
net.ipv4.tcp_max_orphans = 327680
#定义了本地tcp/udp的端口范围
net.ipv4.ip_local_port_range = 1024 65000
#禁止IPV6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

原文地址:https://www.cnblogs.com/cainiaoit/p/8618283.html