12.11. 用 sysctl 进行调整
上一页 | 第 12 章 设置和调整 | 下一页

## 12.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) 及 第 12.10.4 节 “`sysctl.conf`”。

### 12.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) 就会正常的工作了。

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

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

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