linux内核参数配置

linux在系统运行时修改内核参数(/proc/sys与/etc/sysctl.conf),而不需要重启系统,这个功能是通过/proc虚拟文件系统实现的。

1)临时变更:
在/proc/sys目录下存放着大多数的内核参数,并且可以在系统运行时修改。通过修改/proc/sys中内核参数对应的文件而达到修改内核参数的目睹(修改过后,保存配置文件马上自动生效),不过重启机器后会失效。所以是一种临时的变更方案(适合调试内核参数优化值的时候使用,如果设置值有问题,重启服务器就可以还原原来的参数值了)

2)永久变更:
通过修改/etc/sysctl.conf文件内的内核参数,修改后的参数值不会马上生效。如果想要马上生效,并且不重启服务器,可以执行命令:
sysctl -p

3)/proc/sys与/etc/sysctl.conf的对应关系:
即将/proc/sys中的文件转换成sysctl中的变量可以依据以下两个简单的规则:
1、去掉前面部分/proc/sys
2、将文件名中的斜杠变为点
这两条规则可以将/proc/sys中的任一文件转换成sysctl.conf文件中的变量名

例如:
/proc/sys/net/ipv4/ip_forward ==> net.ipv4.ip_forward
/proc/sys/kernel/hostname ==> kernel.hostname

可以使用下面命令查询所有可修改的变量名:
sysctl –a

总结:
两种修改内核参数的方法:
1)使用echo value的方式直接追加到文件中。如echo “1”》>/proc/sys/net/ipv4/tcp_syn_retries,但这种方法设备重启后又会恢复为默认值
2)把参数添加到/etc/sysctl.conf中,然后执行sysctl -p使参数生效,永久生效

内核参数解析参考:
https://www.cnblogs.com/bodhitree/p/5756719.html