linux + sysctl -a +从哪里sysctl -a打印所有的内核参数

我们有linux机器redhat 6

当我们打印/etc/sysctl.conf中的所有参数时,我们只看到〜20,但是当我们执行sysctl -a时,我们看到的是200

所以从哪里sysctl -a打印所有这些参数?

或者例如

当我们这样做

sysctl -w variable=value 

如何知道variables应该保存在哪里?

第二

如何知道这个dynamic或静态的每个参数?

sysctl的选项-a打印所有可用选项,如手册中所述。

 -a, --all Display all values currently available. 

这些选项来自内置或加载的Linux内核模块。 如果不是所有的模块都提供了一些可以通过sysctl进行调整的variables。 /etc/sysctl.conf包含已更改的variables。 任何variables在未更改时都使用其默认值。

请注意,有多个文件可以加载系统参数,如/etc/sysctl.d/下的/etc/sysctl.d/

如果您想知道variables是否可以更改,可以查看/proc/sys下的相应文件。 某些文件(variables)是只读的,而其他文件则是可读写的。

下面是/proc/sys/kernel/的一个可变variables(第一个)和一个只读(第二个)

 -rw-r--r-- 1 root root 0 Apr 4 10:23 shmmax -r--r--r-- 1 root root 0 Apr 4 10:14 version