6.14. 添加交换空间

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

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

这是添加交换空间最好的方法,当然为了达到这个目的需要添加一块硬盘。毕竟你总是可以使用另一块磁盘。如果想这么做,重新阅读一下初始配置(使用手册的初始配置 - 交换空间)章节来获得如何安排交换空间的信息。

6.14.2. 通过 NFS 交换

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

6.14.3. 交换文件

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

Example 6-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 6-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