7.6. 调整FreeBSD的虚拟内存系统
上一页 | 第 7 章 虚拟内存系统 | 下一页

## 7.6. 调整FreeBSD的虚拟内存系统

开发者的协同努力使得FreeBSD可以自行动态调整内核。一般来说， 除了内核配置选项`maxusers`和`NMBCLUSTERS`， 你不需要做任何杂乱的事情。这些内核编译配置选项(一般)被指定在 `/usr/src/sys/i386/conf/`CONFIG_FILE`` 之中。所有可用内核配置选项的描述可在 `/usr/src/sys/i386/conf/LINT`中找到。

在一个大系统的配置中，你可能需要增加`maxusers`的值。 数值范围通常在10到128。注意，过度增加`maxusers` 的值可能导致系统从实际可用的KVM中溢出，从而引起无法预知的操作。 最好将`maxusers`设为一个合理的数值，并且添加其它选项， 如`NMBCLUSTERS`，来增加特定的资源。

如果你的系统要被重负荷的使用网络，你需要增加 `NMBCLUSTERS`的值。数值范围通常在1024到4096。

`NBUF`也是传统的规划系统的参数。 这个参数决定系统可用来映射文件系统输入/输出缓存的KVM的数量。 注意：这个参数与统一的缓存没有任何关系。这个参数可在3.0-CURRENT 和以后的内核中被动态的调节，通常不应当被手动的调节。 我们推荐你不要指定`NBUF`。 让系统自行确定它。太小的值会导致非常低效的文件系统操作； 太大的值会使用页队列中缺少页面，而大量的页处于在线状态。

缺省情况下，FreeBSD内核编译时是不被优化的。 你可以在内核配置文件中用`makeoptions` 指定排错(debugging)和优化标志。注意，你一般不应使用`-g`， 除非你能够应付由此产生的大内核(典型的是7MB或更多)。

makeoptions DEBUG="-g" makeoptions COPTFLAGS="-O -pipe"

Sysctl提供了在运行时调整内核的方式。你通常不需要指定任何sysctl变量， 尤其是与VM相关的那些变量。

运行时VM和系统调整的影响相对直接一些。 首先，应当尽可能在UFS/FFS文件系统上使用Soft Updates。 在`/usr/src/sys/ufs/ffs/README.softupdates` 里有关于如何配置的指示。

其次，应当配置足够多的交换空间。 你应当在每个物理磁盘上配置一个交换分区，最多4个， 甚至在你的“工作”磁盘上。你应当有至少2倍于主内存的交换空间； 假如你没有足够内存的话，交换分区还应更多。 你也应当按照你期望中的最大内存配置决定交换分区的大小， 这样以后就不再需要重新给磁盘分区了。 如果你处理系统崩溃后的内存倾倒(crash dump)， 第一个交换分区必须至少与主内存一样大， `/var/crash`必须有足够的空间来承装倾倒。

NFS上的交换分区可以很好的被4.X或后来的系统使用， 但是你必须明白NFS服务器将要经受页装载操作很强的冲击。

上一页 | 上一级 | 下一页
7.5. KVM存储映射 | 起始页 | 第 8 章 SMPng 设计文档

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

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