手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

swap(1M)

名称

swap - 交换管理接口

用法概要

/usr/sbin/swap -a swapname [swaplow] [swaplen]
/usr/sbin/swap -d swapname [swaplow]
/usr/sbin/swap -l [-h | -k]
/usr/sbin/swap -s [-h]

描述

swap 实用程序提供了一种添加、删除和监视内存管理器使用的系统交换区域的方法。

选项

支持以下选项:

–a swapname [swaplow] [swaplen]

添加指定的交换区域。此选项只能由分配有 "File System Management"(文件系统管理)权限配置文件的管理员或者由 root 使用。swapname 是交换区域或常规文件的名称。例如,在运行 UFS 根文件系统的系统上,可以指定分片(如 /dev/dsk/c0t0d0s1)或常规文件作为交换区域。在运行 ZFS 文件系统的系统上,可以指定 ZFS 卷(如 /dev/zvol/dsk/rpool/swap)作为交换区域。在 ZFS 文件系统上不支持使用常规文件作为交换区域。此外,当系统运行 ZFS 根文件系统时,不能将同一个 ZFS 卷同时用作交换区域和转储设备。

swaplow 是文件内以 512 字节块为单位的偏移量,交换区域应从此偏移量位置开始。swaplen 是交换区域所需的长度,以 512 字节块为单位。swaplen 的值不能小于 16。例如,如果指定了 n 个块,则 (n-1) 个块是实际的交换长度。swaplen 的长度必须至少为一个页面。可以使用 pagesize 命令确定内存页面的大小。请参见 pagesize(1)。由于交换文件的第一个页面会被自动跳过,并且交换文件的长度至少需要为一个页面,因此,其最小大小应该是 2 个页面大小字节的倍数。内存页面的大小取决于计算机。

swaplow + swaplen 必须小于等于交换文件的大小。如果未指定 swaplen,将添加一个始于 swaplow 并扩展到指定文件的末尾的区域。如果 swaplowswaplen 都未指定,将使用除第一个页面外的整个文件。交换区域通常在启动系统的过程中通过 /usr/sbin/swapadd 脚本自动添加。该脚本会添加 /etc/vfstab 文件中指定的所有交换区域;有关这些规范的语法,请参见 vfstab(4)

通过在 vfstab(4) 中指定 encrypted 选项,以及指定 ZFS 卷的 encryption 属性,可以对用作交换设备的 ZFS 卷进行加密。请参见 zfs(1M)

要使用 NFS 或本地文件系统 swapname,首先应该使用 mkfile(1M) 来创建一个文件。现在仅通过运行 swap –a 命令即可将一个本地文件系统交换文件添加到正在运行的系统中。对于 NFS 挂载的交换文件,服务器需要导出包含该文件的目录。要进行导出,请执行以下步骤:

  1. 在 NFS 服务器上运行以下命令:

    share -F nfs -o \ 
    rw=clientname,root=clientname directory-with-swap-file 
  2. 使客户机向 /etc/vfstab 中添加以下行:

    server:directory-with-swap-file -   
    local-path-to-directory nfs    -   yes   - 
    local-path-to-directory/swap-file -  -           
    swap   - no    - 
  3. 在客户机上启用 NFS 客户机服务:

    svcadm enable nfs/client
  4. 重新引导客户机。

–d swapname

删除指定的交换区域。只有超级用户可以使用此选项。swapname 是交换文件(如 /dev/dsk/c0t0d0s1)或常规文件的名称。swaplow 是要删除的交换区域的偏移量,以 512 字节块为单位。如果未指定 swaplow,将从第二个页面开始删除区域。命令完成后,将无法再分配该区域中的交换块,并且该交换区域中之前正在使用的所有交换块已移动到其他交换区域。

–h

所有大小将调整为用户可读的格式。调整是通过反复除以 1024 完成的。

–k

以 1024 字节为单位写出文件大小。

–l

列出所有交换区域的状态。输出包含五列:

path

交换区域的路径名。

dev

如果设备不是块特殊设备,则此列为十进制的主/从设备号;否则为零。

swaplo

区域的 swaplow 值,以 512 字节块为单位。

blocks

区域的 swaplen 值,以 512 字节块为单位。

free

此区域中当前没有分配的 512 字节块的数量。

此列表不包括物理内存形式的交换空间,因为该空间不与特定的交换区域相关。

如果在删除 swapname(通过 swap–d)的过程中运行 swap –l,则会在交换状态的第六列显示字符串 INDEL。

–s

输出有关总交换空间的使用情况和可用性的摘要信息:

allocated

当前分配的用作后备存储的交换空间总量,以字节为单位。

reserved

当前未分配但内存映射声明将来可能使用的交换空间总量,以字节为单位。

used

分配的或保留的交换空间总量,以字节为单位。

available

当前可用于将来保留和分配的交换空间总量,以字节为单位。

这些数字包括由 –l 选项列出的所有已配置的交换区域中的交换空间,以及处于物理内存形式的交换空间。

用法

对于大于 2 GB 的块设备,最多可以将其 263 −1 个字节完全用作交换空间。

环境变量

有关影响 swap 执行的环境变量 LC_CTYPELC_MESSAGE 的描述,请参见 environ(5)

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

pagesize(1)mkfile(1M)shareall(1M)zfs(1M)getpagesize(3C)vfstab(4)attributes(5)largefile(5)

附注

有关使用 ZFS 设置交换区域的信息,请参见《ZFS 管理指南》。

警告

不会进行检查以确定要添加的交换区域是否与现有文件系统重叠。