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


12

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

假设我有足够的内存。

Answers:


19

这个Ask Ubuntu问题

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

从而:

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

如注释中所述,如果您没有足够的内存,swapoff将导致“ 内存不足”错误,并导致内核杀死进程以恢复RAM。


3
进一步说明这一点,如果可用内存不足,swapoff将导致内存不足错误,并且内核将开始终止进程​​以恢复某些错误。请谨慎使用。
bahamat 2012年

这样更好的希望;Linux的表现相当欢快,当你与没有活动的交换运行内存不足所有 ...
Shadur

1

如前所述,如果没有足够的可用内存,仅停用所有交换将导致内核开始终止操作。如果您希望避免这种情况,请先创建第二组交换。然后:

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.