赞
踩
内核参数是可在系统运行时调整的可调整参数。不需要重启或重新编译内核就可以使更改生效。可以通过以下方法处理内核参数:
可调整类(Tunable class) | 子系统 (Subsystem) |
---|---|
abi | 执行域和个人 |
crypto | 加密接口 |
debug | 内核调试接口 |
fs | 全局和特定文件系统的 tunables |
kernel | 全局内核 tunables |
net | 网络 tunables |
sunrpc | Sun 远程过程调用 (NFS) |
user | 用户命名空间限制 |
vm | 调整和管理内存、缓冲和缓存 |
/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
/proc/sys
/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
[root@yyzc-zjjcs04 ~]# sysctl --system
* Applying /usr/lib/sysctl.d/00-system.conf ...
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
* Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq = 16
kernel.core_uses_pid = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /usr/lib/sysctl.d/60-libvirtd.conf ...
fs.aio-max-nr = 1048576
* Applying /etc/sysctl.d/99-sysctl.conf ...
kernel.sem = 1350 32000 300 1024
* Applying /etc/sysctl.conf ...
kernel.sem = 1350 32000 300 1024
[root@yyzc-zjjcs04 ~]#
sysctl <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>
root@k8s-master:~# sysctl net.ipv4.tcp_syn_retries=3
net.ipv4.tcp_syn_retries = 3
root@k8s-master:~# sysctl net.ipv4.tcp_syn_retries
net.ipv4.tcp_syn_retries = 3
root@k8s-master:~# cat /proc/sys/net/ipv4/tcp_syn_retries
3
root@k8s-master:~#
注意: 值与等号之间无空格,否则会失败
root@k8s-master:~# sysctl net.ipv4.tcp_syn_retries= 3
sysctl: setting key "net.ipv4.tcp_syn_retries": Invalid argument
sysctl: cannot stat /proc/sys/3: No such file or directory
root@k8s-master:~#
上面的示例命令在系统运行时更改了参数值。更改将立即生效,无需重新启动。但是在系统重启后,所在的改变会返回到默认状态。
以下方式也是临时更改,重启后失效
sysctl -w <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>
上述命令还会更改/proc/sys 目录中对应类的文件中的值,示例如下
root@k8s-master:/proc/sys/net/ipv4# cat tcp_syn_retries
4
root@k8s-master:/proc/sys/net/ipv4# sysctl net.ipv4.tcp_syn_retries
net.ipv4.tcp_syn_retries = 4
root@k8s-master:/proc/sys/net/ipv4# sysctl -w net.ipv4.tcp_syn_retries=5
net.ipv4.tcp_syn_retries = 5
root@k8s-master:/proc/sys/net/ipv4# sysctl net.ipv4.tcp_syn_retries
net.ipv4.tcp_syn_retries = 5
root@k8s-master:/proc/sys/net/ipv4# cat tcp_syn_retries
5
root@k8s-master:/proc/sys/net/ipv4#
echo <TARGET_VALUE> > /proc/sys/<TUNABLE_CLASS>/<PARAMETER>
为内核参数分配一个目标值,但是这些更改将在系统重启后消失。
root@k8s-master:/proc/sys/net/ipv4# sysctl net.ipv4.tcp_syn_retries
net.ipv4.tcp_syn_retries = 6
root@k8s-master:/proc/sys/net/ipv4# cat tcp_syn_retries
6
root@k8s-master:/proc/sys/net/ipv4# echo 3 >tcp_syn_retries
root@k8s-master:/proc/sys/net/ipv4# cat tcp_syn_retries
3
root@k8s-master:/proc/sys/net/ipv4# sysctl net.ipv4.tcp_syn_retries
net.ipv4.tcp_syn_retries = 3
root@k8s-master:/proc/sys/net/ipv4#
sysctl -w <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE> >> /etc/sysctl.conf
示例命令会更改内核参数,并将其写入 /etc/sysctl.conf 文件,该文件会覆盖内核参数的默认值。更改会立即并永久生效,无需重启。
上述命令还会更改/proc/sys 目录中对应类的文件中的值
在 /etc/sysctl.d/ 中创建一个新配置文件或者直接在 /etc/sysctl.conf文件中修改;
vim /etc/sysctl.d/<some_file.conf>
在文件中配置内核参数,一行一个。
<TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>
<TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>
保存配置文件。重启机器以使更改生效。或者,要在不重启的情况下应用更改,请输入:
sysctl -p /etc/sysctl.d/<some_file.conf>
root@k8s-master:/proc/sys/net/ipv4# sysctl -p /etc/sysctl.conf
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 6
root@k8s-master:/proc/sys/net/ipv4
该命令允许您从之前创建的配置文件中读取值,并将这些值加载到内核中去。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。