可以使用什么命令将交换分区中的所有内容强制释放回内存?

可以使用什么命令将交换分区中的所有内容强制释放回内存?

可以使用什么命令将交换分区中的所有内容强制释放回内存?

假设我有足够的内存。

答案1

这个询问 Ubuntu 问题:

swapoff -a您还可以通过运行然后以 root 身份运行来清除交换,swapon -a而不是重新启动以达到相同的效果。

因此:

$ free -tm
...
Swap:         6439        196       6243
...
$ sudo swapoff -a
$ sudo swapon -a
$ free -tm
...
Swap:         6439          0       6439
...

正如评论中指出的,如果没有足够的内存,swapoff将导致“内存不足”错误,并导致内核杀死进程以恢复 RAM。

答案2

如前所述,如果内核没有足够的可用内存,则简单地停用所有交换将导致内核开始杀死某些东西。如果您希望避免这种情况,请先创建第二组交换。然后:

swapon /second/swap/device && swapoff /first/swap/device 
swapon /first/swap/device && swapoff /second/swap/device

这仍然会交换所有内容,但如果没有足够的空间,它将被转移到第二个交换设备,而不是随机杀死东西。然后把它全部移回去。

答案3

单线:

sudo bash -c 'swapoff -a && swapon -a'

相关内容