Linux 内核参数管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 内核参数管理相关的知识,希望对你有一定的参考价值。

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

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

技术图片

以上是关于Linux 内核参数管理的主要内容,如果未能解决你的问题,请参考以下文章

(转)linux 内存管理——内核的shmall 和shmmax 参数

LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段

Linux内存管理-内核的shmall和shmmax参数(性能调优)(转)

Linux 内核 内存管理物理分配页 ② ( __alloc_pages_nodemask 函数参数分析 | __alloc_pages_nodemask 函数分配物理页流程 )

linux内存管理--linux内核高端内存

linux系统管理