Gil*_*il' 34

交换文件比交换分区更灵活,但也更容易出错。文件系统错误可能会损坏交换文件。交换文件对管理员来说可能是一种痛苦,因为该文件无法移动或删除。交换文件不能用于休眠。过去交换文件稍慢,但现在差异可以忽略不计。

交换文件的优点是不必提前决定大小。但是,在 Linux 下,您仍然无法在线调整交换文件的大小:您必须取消注册,调整大小,然后重新注册(或创建不同的文件并删除旧文件)。因此,与交换分区相比,Linux 下的交换文件并没有太大的好处。当您暂时需要更多虚拟内存而不是作为永久固定装置时,它主要有用。

  • 过去还有一个性能优势。但我认为这在 2.6 出现时就结束了。 (4认同)
  • 根据 Ubuntu Community Help Wiki https://help.ubuntu.com/community/SwapFaq 休眠需要交换分区。引用:“它不能在活动文件系统上使用交换文件。”。关于性能,除非文件稀疏,否则似乎没有区别。https://serverfault.com/questions/25653/swap-partition-vs-file-for-performance (4认同)

Pen*_*enz 29

可以首选交换分区,因为当您只需要一个可寻址的内存池时,它可以避免对文件系统的依赖。

但是没有什么可以阻止您使用交换文件而不是交换分区,或者除了交换分区之外。

为了始终在启动时开始使用交换文件,请编辑 /etc/fstab 并添加

/extraswap           swap          swap    defaults    0 0
Run Code Online (Sandbox Code Playgroud)

[1] http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-swap-adding.html

  • 如果我突然需要额外的交换空间,我一直在使用的有用别名让我在终端中输入 `moreswap`:`alias moreswap='swapfile=\`mktemp /tmp/swapXXXX\` && sudo touch $swapfile && sudo dd bs=512 count=1M if=/dev/zero | tee $swapfile | pv -s 512M && sudo mkswap $swapfile && sudo swapon $swapfile'` (6认同)
  • 此外,文件系统开销的位是不正确的。与普遍看法相反,使用交换文件的开销为零。Andrew Morton [这里](https://lkml.org/lkml/2005/7/7/326) 给出了简单的解释。这是使用基于动态交换文件的交换管理器(如 [交换空间守护程序](http://pqxx.org/development/swapspace))的原因之一,如果配置良好,则是一个很好的解决方案。 (6认同)