不管你计划的如何好,有时候系统并不像你所期待的那样运行。如果你发现需要更多的交换空间,添加它很简单。有三种方法增加交换空间:添加一块新的硬盘驱动器、通过NFS使用交换空间和在一个现有的分区上创建一个交换文件。
这是添加交换空间最好的方法,当然为了达到这个目的需要添加一块硬盘。毕竟你总是可以使用另一块磁盘。如果能这么做,重新阅读一下手册中关于交换空间的 µÚ 11.2 节 来了解如何最优地安排交换空间。
通过 NFS 来交换只在你没有本地硬盘交换的时候被建议。在 FreeBSD 4.X 以前的版本中使用NFS交换速度很慢并且效率低下。4.0-RELEASE和更新的版本中他的速度和效率还是可以接受的。即使使用新版本的 FreeBSD,NFS 交换也会被可用的网络带宽限制并且增加 NFS 服务器的负担。
你可以创建一个指定大小的文件用来当作交换文件。在我们的例子中我们将会使用叫做 /usr/swap0 的 64MB 大小的文件。当然你也可以使用任何你所希望的名字。
例子 11-1. 在 FreeBSD 4.X 上创建一个交换文件
确认你的内核配置包含了 vnode 驱动。它不包含在最近版本的 GENERIC。
pseudo-device vn 1 #Vnode driver (turns a file into a device)
创建一个 vn-device 设备:
# cd /dev # sh MAKEDEV vn0
创建一个交换文件 (/usr/swap0):
# dd if=/dev/zero of=/usr/swap0 bs=1024k count=64
赋予它(/usr/swap0)一个适当的权限:
# chmod 0600 /usr/swap0
在 /etc/rc.conf 中启用交换文件:
swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.
通过重新启动机器或下面的命令使交换文件立刻生效:
# vnconfig -e /dev/vn0b /usr/swap0 swap
例子 11-2. 在 FreeBSD 5.X 上创建一个交换文件:
确认你的内核配置包含虚拟磁盘(Memory disk)驱动(md(4))。它在 GENERIC 内核中是默认的。
device md # Memory "disks"
创建一个交换文件(/usr/swap0):
# dd if=/dev/zero of=/usr/swap0 bs=1024k count=64
赋予它(/usr/swap0)一个适当的权限:
# chmod 0600 /usr/swap0
在 /etc/rc.conf 中启用交换文件:
swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.
通过重新启动机器或下面的命令使交换文件立刻生效:
# mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0