Ubuntu是否支持动态交换文件大小调整?
我无法想象为什么交换文件需要固定大小。 为什么不让它动态resize,比如虚拟盒的硬盘驱动器映像文件?
它看起来不像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 (eg fallocate(1)) on filesystems like XFS or ext4, and on copy-on-write filesystems like btrfs.
我认为同样的问题将适用于动态大小的交换文件。
SwapSpace是一个实用程序,它允许您进行动态大小的交换,如果这是您正在寻找的。 我相信它可以在Ubuntu中使用。
可以使用swapon
命令将交换空间添加到正在运行的系统中。 它需要一个现有的(未使用的)交换文件/分区。 要创建一个,请使用dd
命令分配连续文件,然后使用mkswap
将正确的控制信息添加到文件/分区。
要删除交换文件,请使用swapoff
; 然后可以删除该文件。
我怀疑这是@ user231695提到的SwapSpace
守护程序。
请注意,如果交换文件正在使用,swapoff可能是一个缓慢的操作; 所有数据都必须转移到另一个交换区域。