Answers:
我看到的使用交换文件而不是交换分区的主要缺点是,不可能使交换分区碎片化,而在创建时,扩展文件系统上的交换文件可能会在磁盘上拆分。磁盘,导致较慢的顺序访问。
对文件的I / O操作必须经过更多层的内核代码(例如VFS),因此与交换文件相关的开销更大。另一方面,它是一种更灵活的设置,可能足以满足您的情况。
对交换文件的访问不会通过文件系统...内核知道要交换的磁盘块并直接访问它们1。但是不连续的文件可能在磁盘的不同区域中都有碎片,并且根据特定的用法,额外的查找可能会使它比专用分区慢。
OTOH,如果您要处理的云服务器没有交换分区,并且无法创建分区,则交换文件可能会保存您的应用程序。
[1] “ 内核在交换时生成交换偏移量->磁盘块的映射,此后使用该映射直接针对基础磁盘队列执行交换I / O,绕过所有缓存,元数据和文件系统代码。” – Linux内核存档:Re:交换分区与交换文件