为什么Linux使用交换分区而不是文件?


32

在我看来,交换文件更灵活。


1
您可以在Linux中使用交换文件。我现在正在多台计算机上执行此操作。我没有使用任何特殊的东西,只是LVM上的ext4或ext4。没有加密或任何复杂的东西。挂起和休眠对我来说非常有效,即使在我的NVMe机器上也是如此。
Cory T

Answers:


32

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

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


4
过去也有性能上的好处。但是我认为当2.6发布时就结束了。
xenoterracide

看来这并不能真正回答问题。还是我错过了什么?答案仅涉及交换文件,根本没有提及分区。@Gilles是故意的,还是您只是打错了字?
gabe。

1
@gabe:我正在与分区比较讨论交换文件。希望现在情况更清楚了。
吉尔斯(Gillles)“所以-别再作恶了”

1
我在这里指出我在Penz答案中的评论。在交换文件上感觉到的fs引起的性能损失是没有意义的。
2012年

2
根据Ubuntu社区帮助Wiki help.ubuntu.com/community/SwapFaq的说明,休眠需要交换分区。Quote:“它不能在活动文件系统上使用交换文件。”。关于性能,除非文件稀疏,否则似乎没有什么区别。serverfault.com/questions/25653/...
埃里克Sjölund

28

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

但是,没有什么阻止您使用交换文件而不是交换分区或交换分区。

  • 创建文件:

    dd if=/dev/zero of=/extraswap bs=1M count=512
    
  • 初始化文件内容:

    mkswap /extraswap
    
  • 用它:

    swapon /extraswap
    
  • 看看是否有效:

    free -m
    

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

/extraswap           swap          swap    defaults    0 0

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


5
有用的别名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'
Michael Mrozek

这是很好的信息,但不能回答问题。
lesmana 2010年

6
此外,文件系统开销上的位也不正确。与通常的看法相反,使用交换文件的开销为零。安德鲁莫顿在这里给出简单的解释。如果配置正确,那就是使用基于动态交换文件的交换管理器(如swapspace守护程序)是一个很好的解决方案的原因之一。
2012年

另外,当您在云中运行时,交换文件方法可能是您唯一的选择。
sorin 2012年


1

为了完整起见,我将添加自己的答案:

正如@Gilles所说,交换文件不能用于休眠。使用交换文件时,系统必须找到交换文件的标头,但要执行此操作,必须挂载包含交换文件的文件系统,并记录日志文件系统-例如ext3,ext4以及Linux使用的基本上所有现代文件系统-从磁盘恢复期间无法安装。(实际上,有很多方法可以做到,但是非常麻烦。)

资料来源:https : //www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt


0

我认为这主要是因为对位于分区上的数据的访问时间较短。交换文件的重点是在系统管理员真正用尽内存并且需要进行可能会使其系统崩溃的大型操作时,进一步帮助系统管理员。在这种情况下,他将在需要时偶尔创建交换文件。

但是无论如何,您都可以拥有它们。

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.