web服务器系统内核优化

net.ipv4.neigh.default.gc_stale_time=120
ARP参数,检查一次相邻层记录的有效性的周期。当相邻层记录失效时,将在给它发送数据前,再解析一次。缺省值是60秒。

net.ipv4.conf.all.rp_filter=0
=1"告诉"kernel加强入站过滤(ingress filtering)和出站过滤(egress filtering)

net.ipv4.conf.default.rp_filter=0
反向过滤技术,系统在接收到一个IP包后,检查该IP是不是合乎要求,不合要求的IP包会被系统丢弃。该技术就称为rpfilter。

net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_announce=2
arp_announce:对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址
1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.


net.ipv4.tcp_max_tw_buckets = 10000
系统在同时所处理的最大timewait sockets 数目。如果超过此数的话,time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要人为的降低这个限制,不过,如果网络条件需要比默认值更多,则可以提高它(或许还要增加内存)

net.ipv4.tcp_syncookies = 1
当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭

#net.ipv4.tcp_max_syn_backlog = 1024

net.ipv4.tcp_synack_retries = 2
为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK 包的数量。

net.ipv4.conf.lo.arp_announce=2
#net.ipv4.tcp_max_syn_backlog = 2048

net.ipv4.tcp_max_syn_backlog = 8192
表示那些尚未收到客户端确认信息的连接(SYN消息)队列的长度,默认为1024,加大队列长度为262144,可以容纳更多等待连接的网络连接数。

net.ipv4.tcp_tw_recycle = 1
开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭

net.ipv4.tcp_tw_reuse = 1
表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。

net.core.somaxconn = 262144
用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制

net.ipv4.tcp_keepalive_time = 600
当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟

net.ipv4.tcp_syn_retries = 1
在内核放弃建立连接之前发送SYN 包的数量

net.ipv4.tcp_synack_retries = 1
为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK 包的数量。

net.ipv4.tcp_fin_timeout = 1
如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒

net.ipv4.tcp_max_tw_buckets = 5000
系统在同时所处理的最大timewait sockets 数目。如果超过此数的话,time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要人为的降低这个限制,不过,如果网络条件需要比默认值更多,则可以提高它(或许还要增加内存)

vm.swappiness = 5

net.ipv4.tcp_keepalive_time = 300
当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟

net.ipv4.tcp_max_tw_buckets = 180000
系统在同时所处理的最大timewait sockets 数目。如果超过此数的话,time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要人为的降低这个限制,不过,如果网络条件需要比默认值更多,则可以提高它(或许还要增加内存)

vm.swappiness = 5
这可以大大降低系统对于swap的写入

原文地址:https://www.cnblogs.com/guantou1992/p/9729847.html