我无法想象为什么交换文件需要固定大小。为什么不让它动态调整大小,就像虚拟盒的硬盘映像文件一样?
答案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