跳过导航链接 | |
退出打印视图 | |
手册页第 1M 部分:系统管理命令 Oracle Solaris 11 Information Library (简体中文) |
- 交换管理接口
/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 实用程序提供了一种添加、删除和监视内存管理器使用的系统交换区域的方法。
所支持的选项如下:
添加指定的交换区域。只有超级用户或承担主管理员角色的用户可以使用此选项。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 并扩展到指定文件的末尾的区域。如果 swaplow 和 swaplen 都未指定,将使用除第一个页面外的整个文件。交换区域通常在启动系统的过程中通过 /usr/sbin/swapadd 脚本自动添加。该脚本会添加 /etc/vfstab 文件中指定的所有交换区域;有关这些规范的语法,请参见 vfstab(4)。
通过在 vfstab(4) 中指定 encrypted 选项,以及指定 ZFS 卷的 encryption 属性,可以对用作交换设备的 ZFS 卷进行加密。请参见 zfs(1M)。
要使用 NFS 或本地文件系统 swapname,首先应该使用 mkfile(1M) 来创建一个文件。现在仅通过运行 swap -a 命令即可将一个本地文件系统交换文件添加到正在运行的系统中。对于已挂载的 NFS 交换文件,服务器需要导出该文件。要进行导出,请执行以下步骤:
向 /etc/dfs/dfstab 中添加以下行:
share -F nfs -o \ rw=clientname,root=clientname path-to-swap-file
运行 shareall(1M)。
使客户机向 /etc/vfstab 中添加以下行:
server:path-to-swap-file - local-path-to-swap-file nfs \ - - - local-path-to-swap-file - - swap - - -
使客户机运行 mount:
# mount local-path-to-swap-file
然后,客户机可以运行 swap -a 来添加交换空间:
# swap -a local-path-to-swap-file
删除指定的交换区域。只有超级用户可以使用此选项。swapname 是交换文件(如 /dev/dsk/c0t0d0s1)或常规文件的名称。swaplow 是要删除的交换区域的偏移量,以 512 字节块为单位。如果未指定 swaplow,将从第二个页面开始删除区域。命令完成后,将无法再分配该区域中的交换块,并且该交换区域中之前正在使用的所有交换块已移动到其他交换区域。
所有大小将调整为用户可阅读的格式。调整是通过反复除以 1024 完成的。
以 1024 字节为单位写出文件大小。
列出所有交换区域的状态。输出包含五列:
交换区域的路径名。
如果设备不是块特殊设备,则此列为十进制的主/从设备号;否则为零。
区域的 swaplow 值,以 512 字节块为单位。
区域的 swaplen 值,以 512 字节块为单位。
此区域中当前没有分配的 512 字节块的数量。
此列表不包括物理内存形式的交换空间,因为该空间不与特定的交换区域相关。
如果在删除 swapname(通过 swap-d)的过程中运行 swap -l,则会在交换状态的第六列显示字符串 INDEL。
输出有关总交换空间的使用情况和可用性的摘要信息:
当前分配的用作后备存储的交换空间总量,以字节为单位。
当前未分配但内存映射声明将来可能使用的交换空间总量,以字节为单位。
分配的或保留的交换空间总量,以字节为单位。
当前可用于将来保留和分配的交换空间总量,以字节为单位。
这些数字包括由 -l 选项列出的所有已配置的交换区域中的交换空间,以及处于物理内存形式的交换空间。
在 32 位操作系统上,对于大于等于 2 GB 的交换设备,只会使用前 2 GB -1 的空间。在 64 位操作系统上,对于大于 2 GB 的块设备,最多可以将其 263 -1 个字节完全用作交换空间。
有关影响 swap 执行的环境变量 LC_CTYPE 和 LC_MESSAGE 的描述,请参见 environ(5)。
有关以下属性的说明,请参见 attributes(5):
|
pagesize(1)、mkfile(1M)、shareall(1M)、zfs(1M)、getpagesize(3C)、vfstab(4)、attributes(5)、largefile(5)
有关使用 ZFS 设置交换区域的信息,请参见“ZFS 管理指南”。
不会进行检查以确定要添加的交换区域是否与现有文件系统重叠。