sysctl -a命令可以查看系统中的内核参数
所有的这些参数对应着是/proc/sys/下面的文件
将/proc/sys中的文件转换成sysctl中的变量依据下面两个简单的规则:
1.去掉前面部分/proc/sys
2.将文件名中的斜杠变为点
例如:
/proc/sys/net/ipv4/ip_forward =》 net.ipv4.ip_forward
/proc/sys/kernel/hostname =》 kernel.hostname
nginx的web连接中出现过多的TIME_WAIT过多,最终会把nginx给脱挂,查看内核参数
把内核参数改成:
shell> sysctl net.ipv4.tcp_timestamps=1
#net.ipv4.tcp_timestamps 开启时,net.ipv4.tcp_tw_recycle开启才能生效 shell> sysctl net.ipv4.tcp_tw_recycle=1
#表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
这个变量和时间戳有关,lvs的nat模式中,在转发请求的时候,会把请求中的源ip和目标ip改变,时间戳可能会变,所以就会被回收,但是dr模式,时间戳是不会变的,所以dr模式开启没有问题
shell> sysctl net.ipv4.tcp_tw_reuse=1
#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接(这个对快速重启动某些服务,而启动后提示端口已经被使用的情形非常有帮助)
net.ipv4.tcp_tw_recycle依赖net.ipv4.tcp_timestamps
如果后者开启,前者才会生效
也可以vim /etc/sysctl.conf ,最后sysctl -p就可以生效了!