Linux内核参数管理

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

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

procfs

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

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

bash 复制代码
cat /proc/sys/fs/file-max

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

bash 复制代码
echo 1000000 > /proc/sys/fs/file-max

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

sysctl

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

查看给定内核参数值:

bash 复制代码
sysctl fs.file-max

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

bash 复制代码
sysctl -n fs.file-max

设置给定内核参数:

bash 复制代码
sysctl -w fs.file-max=1000000

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

配置文件

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

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

bash 复制代码
cat /some/path/to/sysctl.conf

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

bash 复制代码
sysctl -p /some/path/to/sysctl.conf

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

系统配置文件

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

bash 复制代码
/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 命令方能生效:

bash 复制代码
sysctl --system

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

bash 复制代码
sysctl -p

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

相关推荐
腾讯蓝鲸智云21 小时前
【运维自动化-节点管理】节点管理的插件策略如何使用
运维·自动化·云计算·sass·paas
疯狂成瘾者1 天前
服务器的单体和集群
运维·服务器
liuhuizuikeai1 天前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
初願致夕霞1 天前
基于系统调用的Linux网络编程——UDP与TCP
linux·网络·c++·tcp/ip·udp
charlie1145141911 天前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
飞Link1 天前
2000 亿砸向算力:字节跳动 AI 基建跨越,后端与运维的“万亿 Token”生死战
运维·人工智能
消失的旧时光-19431 天前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
SWAGGY..1 天前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
kdxiaojie1 天前
U-Boot分析【学习笔记】(3)
linux·笔记·学习
烛衔溟1 天前
TypeScript 接口继承与混合类型
linux·ubuntu·typescript