sysctl

实时调整系统内核参数


语法格式

sysctl [-n] [-e] variables
sysctl [-n] [-e] [-q] -w variable=value
sysctl [-n] [-e] [-q] -p [file]
sysctl [-n] [-e] –a|-A

命令简介

利用sysctl命令,可以实时地设置、修改系统内核参数。其中,variables是一个或一组内核参数变量,如kernel.shmax,表示最大的共享内存段限制(中间的句点“.”可以换作斜线“/”字符,表示变量的层次)。

第一种语法格式主要用于显示指定内核参数的当前设置。第二种语法格式用于临时设置少量的指定内核参数。第三种语法格式采用指定或默认的配置文件,批量地设置内核参数。利用第四种语法格式可以查询系统内核所有参数的当前设置。

注意,可调整的内核参数变量位于/proc/sys目录。利用cat等命令,可以直接查看内核参数的当前设置。

命令选项

-a  显示系统内核所有参数的当前设置。

-A  以表格形式显示系统内核所有参数的当前设置。

-e  即使指定的内核参数变量有误时,也不显示错误信息。

-n  显示系统内核参数时禁止输出参数变量的名字。

-p [file]  指定内核参数配置文件,默认的配置文件是/etc/sysctl.conf。如果指定的文件名为“-”,则意味着从标准输入读取内核参数设置数据。

-q  设置系统内核参数时,禁止输出设置后的结果。

-w variable=value  把指定的内核参数设置成指定的值。当指定的值包含多个字段或Shell特殊字符时,前后需加双引号。利用“-w”选项,可以同时定义多个内核参数。

应用实例

1. 使用sysctl命令查询系统内核当前的所有参数设置。

$ sysctl -a

2. 假定想把系统内核的最大共享内存段参数临时改为64MB,可以使用下列命令:

# sysctl -w kernel.shmmax=67108864
kernel.shmmax = 67108864
#

3. 若想一劳永逸地修改系统内核参数,可以编辑/etc/sysctl.conf配置文件,增加诸如下列形式的内核参数设置,以便在系统启动过程中通过运行“sysctl -e -p /etc/sysctl.conf”命令自动设置系统内核参数:

kernel.shmmax = 67108864
net.ipv4.ip_forward = 1

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z