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

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

最新文章

  1. 43. Multiply Strings
  2. iOS拨打电话的三种方式
  3. 必须知道的.net(继承)
  4. 通过jquery.transit.min.js插件,实现图片的移动
  5. NEST.net Client For Elasticsearch简单应用
  6. cocos2dx 环境搭建 win7 +vs2012+ cocos2dx-2.1.4
  7. location将地址栏参数拆分成键值对的对象
  8. JavaScript基础学习(七)—BOM
  9. python基础===Python 代码优化常见技巧
  10. Swift 4.0.2 按下tab bar item时, item会有内缩的animation效果(如同Twitter的tab bar 效果一样)
  11. SVN 服务器端权限管理
  12. Centos7安装netstat及简单使用
  13. CodeForces121E 线段树上线段果
  14. WinForm多线程+委托防止界面假死
  15. 9.翻译系列:EF 6以及EF Core中的数据注解特性(EF 6 Code-First系列)
  16. 自定义ThreadPoolExecutor带Queue缓冲队列的线程池 + JMeter模拟并发下单请求
  17. 移植vsftpd到arm linux
  18. Realtime Rendering 1.1
  19. mysql--------char 和 varchar 的区别
  20. jQuery鼠标悬停

热门文章

  1. 出现An App ID with Identifier 'com.XXX.XXX’ is not available. Please enter a different string.
  2. 让现有vue前端项目快速支持多语言 - 用.net core程序快速替换中文为资源Key,咱不干体力活
  3. Java入门 - 语言基础 - 08.运算符
  4. 影响K8S Pod分配和调度策略的两大关键特性
  5. PHP——常量
  6. 高精度算法(C/C++)
  7. 使用dlib自带的面向梯度直方图(HOG)和线性分类器方法来检测人脸
  8. C#系列之占位符的使用方法(二)
  9. 隐马尔可夫(HMM)/感知机/条件随机场(CRF)----词性标注
  10. 13、FrameRely