FreeBSD 使用手册
上一页 | 第11章 　设置和调整 | 下一页

# 11.11 用 sysctl 进行调整

sysctl(8) 是一个允许您改变正在运行中的 FreeBSD 系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项， 这可以让有经验的管理员提高引人注目的系统性能。用 sysctl(8) 可以读取设置超过五百个系统变量。

基于这点，sysctl(8) 提供两个功能：读取和修改系统设置。

查看所有可读变量：

    % sysctl -a

读一个指定的变量，例如 `kern.maxproc`：

    % sysctl kern.maxproc
    kern.maxproc: 1044

要设置一个指定的变量，直接用 `variable`=`value` 这样的语法：

    # sysctl kern.maxfiles=5000
    kern.maxfiles: 2088 -> 5000

sysctl 变量的设置通常是字符串、数字或者布尔型。 (布尔型用 `1` 来表示'yes'，用 `0` 来表示'no')。

如果你想在每次机器启动时自动设置某些变量， 可将它们加入到文件 `/etc/sysctl.conf` 之中。更多信息，请参阅手册页 sysctl.conf(5) 及 第 11.10.4 节。

## 11.11.1 只读的 sysctl(8)

Contributed by Tom Rhodes.

有时可能会需要修改某些只读的 sysctl(8) 的值。 尽管有时不得不这样做， 但只有通过(重新)启动才能达到这样的目的。

例如一些膝上型电脑的 cardbus(4) 设备不会探测内存范围，并且产生看似于这样的错误：

    cbb0: Could not map register memory
    device_probe_and_attach: cbb0 attach returned 12

像上面的错误通常需要修改一些只读的 sysctl(8) 默认设置。要实现这点，用户可以在本地的 `/boot/loader.conf.local` 里面放一个 sysctl(8) “OIDs”。那些设置定位在 `/boot/defaults/loader.conf` 文件中。

修复上面的问题用户需要在刚才所说的文件中设置 `hw.pci.allow_unsupported_io_range=1`。现在 cardbus(4) 就会正常的工作了。

上一页 | 起始页 | 下一页
配置文件 | 上一级 | 调整磁盘

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.