最大交换文件大小

最大交换文件大小

我正在处理一些文件,似乎需要一个巨大的交换文件:即使 20Gb 也不够。理论上的最大值是多少?swapon在 1Tb 文件上运行结果如下:

swapon: /mnt/big/swap.swap: swapon failed: Invalid argument

所讨论的系统是运行在 OpenStack 上的 Ubuntu VM,驱动器已挂载 NFS。不过,比这更广泛的答案也可以。

答案1

此处的错误消息可能不是来自交换文件本身的大小,而是来自其在 NFS 挂载上的位置。我认为 1 TB 交换文件没有问题。想象一下,在具有 4TB RAM 的多处理器 SMP 上会有什么样的交换!

为了交换远程文件,您可以执行以下操作:

  # losetup /dev/loop0 /mnt/big/swap.swap
  # mkswap /dev/loop0
  # swapon /dev/loop0

答案2

微软建议,“它是计算机物理 RAM 的四倍,四舍五入到下一个 4 兆字节 (MB)。”

但我不得不同意 psusi 的观点。一定有更好的方法来处理该文件。例如,如果你可以一次抓取其中的块。我能够用这种方式解析一个非常大的 XML 文件。对于你一次只能访问一行的文件,比将整个文件加载到内存中然后解析它占用的内存更少。

相关内容