linux 7.2 修改内核参数,【翻译】CentOS/RHEL使用sysctl查询,修改内核参数 | 勤奋的小青蛙...

首先,本文是笔者翻译而来,原文可以参考:

本文旨在把重要的操作步骤记录下来而已。

21e133e944b97a8ea69c1693cd855c8d.png

引申:学习完本文,我们可以学会:

如何修改Linux消息队列最大长度,如何修改Linux共享内存最大分配值等与内核参数相关配置的问题。

开始:

本文的目的是讲解如何使用sysctl在Red Hat(RHEL / CentOS)和Oracle Linux(OL)系统上配置内核参数。 sysctl程序(/sbin/sysctl)允许(特权)用户在运行时查询和修改内核参数。 该程序对于大多数Linux发行版来说是通用的,但是,不同发行版之间可能存在细微差别,例如, RHEL / OL和SuSE。

内核参数的查看和修改是通过procfs文件系统的/proc/sys进行。 在配置文件中设置时使用点(“.”)表示配置项。

查询特定的内核参数

要查询命名的内核参数值,请运行带有'-n'或无参数的sysctl实用程序,例如:

# sysctl kernel.shmmax

kernel.shmmax = 68719476736

# sysctl -n kernel.shmmax

68719476736

在上面的例子中,参数kernel.shmmax与/proc/sys/kernel/shmmax相关,例如:

# cat /proc/sys/kernel/shmmax

68719476736

查询所有内核参数

要查询所有内核参数值,请使用'-a'参数运行systctl实用程序,例如:

# sysctl -a | more

kernel.sched_child_runs_first = 0

kernel.sched_min_granularity_ns = 4000000

kernel.sched_latency_ns = 20000000

kernel.sched_wakeup_granularity_ns = 4000000

kernel.sched_tunable_scaling = 1

您可以在上面的输出中查找特定的内核参数。使用正则表达式过滤掉一组内核参数。例如:

# sysctl -a | grep ^kernel.s[h,e]m

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

kernel.shmmni = 4096

kernel.shm_rmid_forced = 0

kernel.sem = 25032000100128

临时设置内核参数(不是持久的)

要立即设置sysctl参数值(非持久性),请使用sysctl -w命令。例如 :

# sysctl -w kernel.sysrq=0

kernel.sysrq = 0

采用多个值的参数应该包含在引号中的值。例如,要将net.ipv4.ip_local_port_range设置为1025-65535:

# sysctl -w net.ipv4.ip_local_port_range="1025 65535"

或者,可以将值直接回显到代表sysctl参数的procfs文件中。例如:

# echo 1 > /proc/sys/net/ipv4/ip_forward

# echo "1025 65535" > /proc/sys/net/ipv4/ip_local_port_range

永久设置内核参数

使用'systctl -w'方法更改的内核参数值是易失性的,即在服务器重启时丢失。 sysctl实用程序的配置文件/etc/sysctl.conf应该用于永久存储非默认的内核参数值。该文件在服务器启动时解析,其中的值用于配置内核。使用/etc/sysctl.conf文件配置内核参数所需的语法遵循component.parameter = value表示法,例如: kernel.shmmax = 33554432。

永久设置参数的语法如下:

# vi /etc/sysctl.conf

[component].[parameter]=[value]

以下是/etc/sysctl.conf文件示例:

# grep -v ^# /etc/sysctl.conf

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

....

除了使用'systctl -w'方法修改内核参数外,还可以通过将参数添加到/etc/sysctl.conf文件来修改参数,然后使用带有'-p'参数的sysctl实用程序解析文件,例如:

# sysctl -n kernel.ctrl-alt-del

0

# echo "kernel.ctrl-alt-del=1" >> /etc/sysctl.conf

# sysctl -p

kernel.ctrl-alt-del = 1

通过将内核参数添加到/etc/sysctl.conf文件来修改内核参数不仅可以设置它们(sysctl -p),还可以确保在服务器重新引导后修改后的值仍然存在。

在CentOS / RHEL 7下持久设置内核参数

在CentOS / RHEL 7下设置内核参数的方法与旧版本略有不同。 在/etc/sysctl.d/目录下创建一个新的conf文件。 文件名采用格式/etc/sysctl.d/[name].conf。 /etc/sysctl.d/目录中的文件按顺序进行解析,因此建议在文件名前加上一个数字,表示您希望解析文件的顺序。例如,/etc/sysctl.d /01-custom.conf:

# cat /etc/sysctl.d/01-custom.conf

net.ipv4.ip_forward=1

net.ipv4.ip_local_port_range="1025 65535"

要让系统立即将值应用于一个更新的 /etc/sysctl.d文件,请运行sysctl -p [filename]:

# sysctl -p /etc/sysctl.d/01-custom.conf

更多参考:

文章的脚注信息由WordPress的wp-posturl插件自动生成

|2|left

打赏

1b6439c6a040252321edad911c85491b.png微信扫一扫,打赏作者吧~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值