如何清除交换空间

如何清除交换空间

我如何清除交换?我知道这不是必需的,但我仍然想知道该怎么做。这就是我到目前为止正在做的事情:

# to check if there is enough space in ram for the swap contents:
free -m
sudo swapoff -a
sudo chmod 600 /var/swap
sudo mkswap /var/swap
sudo swapon -a

这适用于清除交换,但它不会再次打开,因为直到我重新启动后才使用它。

答案1

1. 没有systemd

您可以使用 禁用交换swapoff -a。如果正在使用交换,则这不是一个瞬时操作(请参阅 参考资料man swapoff)。

如果您已定义交换,/etc/fstab则可以使用它swapon -a来激活所有已知的交换文件和分区。如果那里没有定义,您需要声明您想要使用的交换空间,例如swapon /var/swap.

无需每次使用时都重新创建它

2. 与systemd

激活交换的新方法是通过systemd启动时运行的服务。您可以查看其状态,例如,

systemctl status dphys-swapfile     # What happened last time it ran
systemctl restart dphys-swapfile    # Recompute the swapfile space and reactivate it

依次systemd调用该dphys-swapfile命令(请参阅 参考资料man dphys-swapfile),该命令计算合理大小的交换文件分区并根据需要激活或停用它。

例如,

dphys-swapfile swapoff    # Stop using the swapfile
dphys-swapfile setup      # (Re-)compute an optimal swap space as /var/swap
dphys-swapfile swapon     # Start using the computed swapfile

systemd世界中dphys-swapfile,交换空间默认为文件/var/swap而不是分区

答案2

你快到了。在清除交换空间之前,必须先卸载它。在大多数情况下,交换已经在/etc/fstab文件中定义。请按照以下步骤操作以避免重新启动系统:

sudo swapoff -a
sudo umount /var/swap
sudo chmod 600 /var/swap
sudo mkswap /var/swap
sudo swapon -a
sudo mount -a 

相关内容