11.14. 添加交换空间

不管您计划的如何好,有时候系统并不像您所期待的那样运行。 如果您发现需要更多的交换空间,添加它很简单。 有三种方法增加交换空间:添加一块新的硬盘驱动器、通过 NFS 使用交换空间和在一个现有的分区上创建一个交换文件。

11.14.1. 在新的硬盘驱动器上使用交换空间

这是添加交换空间最好的方法, 当然为了达到这个目的需要添加一块硬盘。 毕竟您总是可以使用另一块磁盘。如果能这么做, 重新阅读一下手册中关于交换空间的 Section 11.2 来了解如何最优地安排交换空间。

11.14.2. 通过 NFS 交换

通过 NFS 来交换只在您没有本地硬盘交换的时候被建议。在 FreeBSD 4.X 以前的版本中使用NFS交换速度很慢并且效率低下。4.0-RELEASE 和更新的版本中他的速度和效率还是可以接受的。即使使用新版本的 FreeBSD,NFS 交换也会被可用的网络带宽限制并且增加 NFS 服务器的负担。

11.14.3. 交换文件

您可以创建一个指定大小的文件用来当作交换文件。 在我们的例子中我们将会使用叫做 /usr/swap0 的 64MB 大小的文件。当然您也可以使用任何您所希望的名字。

Example 11-1. 在 FreeBSD 4.X 上创建一个交换文件

  1. 确认您的内核配置包含了 vnode 驱动。 它不包含在最近版本的 GENERIC

    pseudo-device   vn 1   #Vnode driver (turns a file into a device)
    
  2. 创建一个 vn-device 设备:

    # cd /dev
    # sh MAKEDEV vn0
    
  3. 创建一个交换文件 (/usr/swap0):

    # dd if=/dev/zero of=/usr/swap0 bs=1024k count=64
    
  4. 赋予它(/usr/swap0)一个适当的权限:

    # chmod 0600 /usr/swap0
    
  5. /etc/rc.conf 中启用交换文件:

    swapfile="/usr/swap0"   # Set to name of swapfile if aux swapfile desired.
    
  6. 通过重新启动机器或下面的命令使交换文件立刻生效:

    # vnconfig -e /dev/vn0b /usr/swap0 swap
    

Example 11-2. 在 FreeBSD 5.X 上创建一个交换文件:

  1. 确认您的内核配置包含虚拟磁盘(Memory disk)驱动 (md(4))。它在 GENERIC 内核中是默认的。

    device   md   # Memory "disks"
    
  2. 创建一个交换文件(/usr/swap0):

    # dd if=/dev/zero of=/usr/swap0 bs=1024k count=64
    
  3. 赋予它(/usr/swap0)一个适当的权限:

    # chmod 0600 /usr/swap0
    
  4. /etc/rc.conf 中启用交换文件:

    swapfile="/usr/swap0"   # Set to name of swapfile if aux swapfile desired.
    
  5. 通过重新启动机器或下面的命令使交换文件立刻生效:

    # mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0