Ubuntu 是否支持动态交换文件大小?

Ubuntu 是否支持动态交换文件大小?

我无法想象为什么交换文件需要固定大小。为什么不让它动态调整大小,就像虚拟盒的硬盘映像文件一样?

答案1

Linux 似乎不支持动态交换文件大小调整(无论如何,如果没有swapoff/ ,我无法让它检测到交换文件的大小是否发生了变化swapon)。

假设在编写支持交换文件的代码时,更容易假设交换文件不会动态更改文件大小。我也没有看到它有什么用处。由于您可以使用多个交换文件,因此没有什么可以阻止您根据需要创建更多交换文件。

另请注意以下段落手册swapon

The  swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the  filesystem.   This
is  a problem on preallocated files (e.g.  fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.

我认为同样的问题也适用于动态大小的交换文件。

答案2

交换空间是一款可让您进行动态大小交换的实用程序(如果您需要的话)。我相信它在 Ubuntu 中可用。

答案3

我知道已经晚了,但我认为动态交换的最佳解决方案是:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

然后开始CONF_SWAPFACTOR=2/etc/dphys-swapfile最后

sudo service dphys-swapfile start

答案4

似乎一个程序命名swapspace。从 Ubuntu 18.04 开始可用。
相应的GitHub 页面。如果您想暂停和恢复工作,他们建议使用静态交换文件。他们也不建议将其用于需要响应的系统。

人们关于如何使用它。这些细节被提及在自述文件中文件。

相关内容