最大交换文件大小

我正在做一些文件处理,似乎需要一个巨大的交换文件:即使20Gb是不够的。 理论上的最大值是多less? 在1TB文件上运行swapon导致:

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

所讨论的系统是在OpenStack上运行的Ubuntu VM,并且该驱动器是NFS挂载的。 尽pipe如此,比这更广泛的答案也很好。

这里的错误信息可能不是来自交换文件本身的大小,而是来自它在NFS安装上的位置。 没有错,我相信有一个1TB的交换文件。 想象一下,在具有4TB RAM的多处理器SMP上将会出现什么样的交换?

为了交换一个远程文件,你可以这样做:

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

微软build议说:“这是计算机物理RAM的四倍,四舍五入到接下来的4兆字节(MB)。”

但我不得不同意psusi。 必须有更好的方法来处理该文件。 例如,如果您可以一次抓取它的大块。 我能够用这种方式parsing一个非常大的XML文件。 而对于一次只能访问一行的文件,使用的内存less于将整个文件加载到内存中然后进行parsing。