在我看来,交换文件更灵活。
答案1
交换文件比交换分区更灵活,但也更容易出错。文件系统错误可能会损坏交换文件。交换文件对于管理员来说可能是一件痛苦的事情,因为该文件无法移动或删除。交换文件不能用于休眠。过去交换文件的速度稍慢,但现在差异可以忽略不计。
交换文件的优点是不必提前决定大小。然而,在 Linux 下,您仍然无法在线调整交换文件的大小:您必须取消注册它,调整大小,然后重新注册(或创建一个不同的文件并删除旧的文件)。因此,与交换分区相比,Linux 下的交换文件并没有多大好处。当您暂时需要更多虚拟内存而不是作为永久固定装置时,它主要有用。
答案2
交换分区可能是首选,因为当您只需要一个可寻址内存池时,它可以避免对文件系统的依赖。
但没有什么可以阻止您使用交换文件来代替交换分区,或者除了交换分区之外还使用交换文件。
创建文件:
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
答案3
也许主要原因是主内核挂起到磁盘不适用于交换文件。例如Debian 维基uswsusp
如果您需要的话,请按照说明进行安装。
最近,如果文件系统是 ,则交换文件不起作用btrfs
,因此对于发行版来说,始终将交换创建为分区是最简单的。
有人含糊地提到,在内核版本 2.6 之前,使用文件进行交换的性能可能低于分区。 https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15
答案4
我认为这主要是因为位于分区上的数据的访问时间较短。交换文件的目的更多的是帮助系统管理员,当他真的没有内存并且需要执行可能会导致系统崩溃的大量操作时。在这种情况下,他会在需要时偶尔创建交换文件。
但无论如何,你可以同时拥有它们。