曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4797|回复: 0
打印 上一主题 下一主题

sysctl -- 在运行时配置内核参数

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2011-5-25 23:40:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sysctl 命令在系统运行时可以进行内核参数的配置--通过读出/写入的方式进行。这些可配置的参数通常都在 /proc/sys 下:
[beyes@localhost ~]$ ll /proc/sys
total 0
dr-xr-xr-x 0 root root 0 May 25 04:49 debug
dr-xr-xr-x 0 root root 0 May 25 04:49 dev
dr-xr-xr-x 0 root root 0 May 24 20:36 fs
dr-xr-xr-x 0 root root 0 May 24 23:01 kernel
dr-xr-xr-x 0 root root 0 May 25 01:38 net
dr-xr-xr-x 0 root root 0 May 25 04:49 sunrpc
dr-xr-xr-x 0 root root 0 May 25 04:49 vm
上面的各个目录下都有相关的配置文件项。

我们可以用 -a 参数来读取所有可配置的变量:
[root@localhost beyes]# sysctl -a |more
kernel.sched_child_runs_first = 0
kernel.sched_min_granularity_ns = 2250000
kernel.sched_latency_ns = 18000000
kernel.sched_wakeup_granularity_ns = 3000000
kernel.sched_tunable_scaling = 1
... ...
在 Fedora15 系统上,默认安装情况下,通过对 -a 参数输出统计,知道可配置变量高达 750 项:
[root@localhost beyes]# sysctl -a |wc -l
750

读取一个变量的方法很简单,比如读取 kernel.ostype 这个变量:
[root@localhost beyes]# sysctl kernel.ostype
kernel.ostype = Linux
从输出知道,当前 OS 为 Linux 。

-n 参数可以在输出时忽略掉变量名称,如:
[root@localhost beyes]# sysctl -n kernel.ostype
Linux

如果想更改一个变量值,可以使用 -w 参数:
[root@localhost beyes]# sysctl -w kernel.domainname="localhost"
kernel.domainname = localhost
[root@localhost beyes]# sysctl kernel.domainname
kernel.domainname = localhost
-p 参数后可以接一个配置文件,这样 sysctl 就会从中读取配置项来配置内核参数,如果 -p 后不接文件,那默认就使用 /etc/sysctl.conf 这个文件来配置。

使用 sysctl 命令进行配置,在系统重启后这些配置失效,如果希望在系统重启后仍然生效,那么要将配置写到 /etc/sysctl.conf 文件中。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 15:19 , Processed in 0.077491 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表