11.9. 使用sysctl(8)调校

sysctl(8)可用来更改执行中的FreeBSD系统,这包含许多TCP/ IP 堆叠及虚拟內存系统的进阶选项,让有经验的系统管理者能够简单的提升性能。有超过五百个系统变数可以使用sysctl(8)来读取与设定。

sysctl(8)主要提供两个功能:读取与修改系统设定。

检视所有可读取的变数:

% sysctl -a

要读取特定变数只要指定其名称:

% sysctl kern.maxproc
kern.maxproc: 1044

要设定特定变数可使用variable=value语法:

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

sysctl 变量的类型通常是字符串、数字或布尔值。其中布尔值1表示是,0表示否。

要在每次机器开机时自动设定一些变数可将其加入到/etc/sysctl.conf。要取得更多的信息请参考sysctl.conf(5)第 11.9.1 节 “sysctl.conf

11.9.1. sysctl.conf

sysctl(8)的配置文件于/etc/sysctl.conf,内容很像/etc/rc.conf,设定数值使用variable=value格式。指定的数值会在系统进入多使用者模式时设定,但并非所有变数皆可在此模式设定。

例如,要关闭严重信号(Fatal signal)中止的记录并避免使用者看到其他使用者所执行的程序,可加入以下设定到/etc/sysctl.conf

# Do not log fatal signal exits (e.g., sig 11)
kern.logsigexit=0

# Prevent users from seeing information about processes that
# are being run under another UID.
security.bsd.see_other_uids=0

11.9.2. 只读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)设定。加入hw.pci.allow_unsupported_io_range=1/boot/loader.conf然后重新启动。现在cardbus(4)应可正常运作。

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

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.