18

Linux 内核参数管理

 4 years ago
source link: http://www.cnblogs.com/fasionchan/p/linux-kernel-parameter-setting.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Linux 内核有很多可以定制化的参数 —— 内核参数 ( kernel parameters ), 斟酌设置内核参数对 系统调优 意义重大。 内核参数 涵盖内核的方方面面,包括 网络 ( net )、 文件系统 ( fs )等等。

原文地址: https://linux.fasionchan.com

欢迎关注我们的微信公众号: 小菜学编程 (coding-fan)

欢迎加入我们的技术交流群: 学习Linux ( 278378501 )

本文以 fs.file-max 参数为例,介绍设置内核参数的几种方式。

procfs

Linux 内核通过 procfs 伪文件系统暴露 内核参数 的访问接口, 通过 procfs 接口,用户可 设置 或者 查看 指定内核参数。 内核参数位于 /proc/sys 目录下,以 fs.file-max 参数为例,路径为 /proc/sys/fs/file-max

查看参数只需读取对应文件内容:

$ cat /proc/sys/fs/file-max
94524

同样地,设置参数只需将值写入对应文件:

$ echo 1000000 > /proc/sys/fs/file-max

注解:

通过 procfs 调整内核参数可以 立即生效 ,但 重启失效

sysctl

Linux 内置 sysctl 命令用于管理内核参数,用法非常直观。

查看给定内核参数值:

$ sysctl fs.file-max
fs.file-max = 94524

如果只需返回参数值,可以指定 -n 参数:

$ sysctl -n fs.file-max
94524

设置给定内核参数:

$ sysctl -w fs.file-max=1000000
fs.file-max = 1000000

注解:

由于 sysctl 命令底层通过 procfs 接口与内核交互,因此效果与 procfs 类似 —— 立即生效,重启失效

配置文件

procfs 只是访问内核参数的接口,参数设置 持久化 仍需借助 配置文件 实现。

用户可将内核参数设置写在一个文件里:

$ cat /some/path/to/sysctl.conf
fs.file-max = 1000000

然后,运行 sysctl 命令加载配置文件以便生效:

$ sysctl -p /some/path/to/sysctl.conf

如果系统重启,再次运行以上命令即可重新设置内核参数。

系统配置文件

Linux 系统启动后,默认从以下 系统配置文件 加载内核参数:

/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

因此,更推荐将内核参数设置写到这些 系统配置文件 中。

系统配置调整后,需要重启系统或者运行以下 sysctl 命令方能生效:

$ sysctl --system

如果只改动 /etc/sysctl.conf ,则只需以 -p 选项运行 sysctl 命令:

$ sysctl -p

-p 选项未指定文件时, sysctl 命令默认加载 /etc/sysctl.conf

下一步

更多 Linux 技术文章请访问: 学习Linux

订阅更新,获取更多学习资料,请关注我们的 微信公众号

bY3qQrb.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK