无法为 Solaris 11.3 创建交换文件

无法为 Solaris 11.3 创建交换文件

由于内存不足,我的编译在 Solaris 11.3 上失败。该盒子是一个 UltraSPARC 工作站,配备 600GB 驱动器和 8GB RAM,并安装了全新操作系统。系统内存不足,而且我开箱即用,这绝对令人困惑。

我正在尝试跟随在 Solaris 系统上添加交换空间添加更多空间。

# Step 1
$ sudo su -
...

# Step 2
# mkdir /var
mkdir: Failed to make directory "/var"; File exists
# mkfile 2048m /var/swap

# Step 3
# ls -l /var/swap
-rw-------   1 root     root     2147483648 Jul 16 11:42 /var/swap

# Step 4
# swap -a /var/swap
"/var/swap" is not valid for swapping.
It must be a block device or a regular file with the
"save user text on execution" bit set.

我有两个问题。首先,Oracle 的什么问题如此严重以至于几乎所有文档都是错误的?

其次,我如何创建该死的交换空间?我该如何制作时间出现在ls列表中?


这是文档的步骤 3。请注意添加了时间:

通过键入以下内容验证文件是否已创建:

ls -l /directory/swap-file-name

新文件出现在目录中。例如:

ls -l /foo/16mswap    -rw------T   1 root     other    16777216 Dec 12 14:24 /foo/16mswap

答案1

您找到的页面与 Solaris Studio 12.3 相关,该版本可以追溯到 2011 年,当时 Solaris 仍在使用交换文件。对于使用 ZFS 作为根文件系统的 Solaris 11.3,该过程略有不同,因为需要真正的块设备。幸运的是,ZFS 通过 ZFS 卷使使用真正的块设备变得非常容易。

首先,检查您现有的卷:

zfs list -t volume

您很可能会看到一个名为swap@的卷/rpool/swap,因此您需要为新设备使用不同的名称,例如swap2

这是我所看到的:

bash-[501]# zfs list -t volume
NAME         USED  AVAIL  REFER  MOUNTPOINT
rpool/dump  3.08G   139G  2.99G  -
rpool/swap  2.06G   139G  2.00G  -

另外,请查看您现有的交换设备:

bash-[502]# swap -l
swapfile             dev    swaplo   blocks     free
/dev/zvol/dsk/rpool/swap 275,1         8  4194296  4194296

下一步是创建新卷。在下一个命令中,该-V选项指示我们正在创建一个原始块设备,而不是具有文件系统的设备,并且2G大小是:

bash-[503]# zfs create -V 2G rpool/swap2

现在您将看到卷列表已更改:

bash-[504]# zfs list -t volume
NAME          USED  AVAIL  REFER  MOUNTPOINT
rpool/dump   3.08G   137G  2.99G  -
rpool/swap   2.06G   137G  2.00G  -
rpool/swap2  2.06G   137G  2.00G  -

然后您可以将该块设备激活为交换:

bash-[505]# swap -a /dev/zvol/dsk/rpool/swap2

并且,与往常一样,您可以使用 来查看交换设备swap -l

bash-[506]# swap -l
swapfile             dev    swaplo   blocks     free
/dev/zvol/dsk/rpool/swap 275,1         8  4194296  4194296
/dev/zvol/dsk/rpool/swap2 275,3         8  4194296  4194296

答案2

T可以使用以下方式在文件上设置属性

chmod +t filename

请注意,如果文件位于 ZFS 文件系统上,则不支持使用交换文件。

相关内容