在64 GB RAM计算机上交换分区大小以进行内存密集型工作

Modified on: Fri, 09 Nov 2018 11:20:03 +0800

我的计算机上有64 GB RAM和240 GB SSD,我是我将用于内存密集型计算(机器学习,数据挖掘等)。我在互联网上发现的大多数建议大约是2-4-8 GB RAM计算机,它们建议RAM交换分区大小的2倍(所以128 GB)。

制作128 GB交换分区是否合理?通过制作一个巨大的交换分区可以获得哪些优势?

我是否正确理解,如果我的物理RAM耗尽:

  1. 如果我没有交换,我会收到“内存不足”错误
  2. 如果我确实有交换,一些RAM页面将被复制到交换分区,程序将继续运行(虽然速度较慢)。
  3. 醇>

    有些人说,在SSD上进行交换是一个坏主意,因为它的读/写周期有限。使用swap的速度有多快会耗尽SSD读/写周期(据我所知,它的写入IOPS大约为50000)?

    我正在使用Linux(Ubuntu 14.04(Trusty)塔尔羊))。

    现在要设置一个16 GB的交换,因为它应该足够(例如,RedHat建议4 GB),16 GB的磁盘空间实际上并不是什么大问题。

最佳答案

您可能只需要少量交换。当你有足够的RAM用于计算机的典型工作集时,我很确定你这样做,你只需要交换两件事:

  1. 您需要交换以获取可能永远不会从RAM中访问的信息,以释放更多的磁盘缓存空间。许多应用程序在系统启动时运行,永远不会再次访问。你不希望他们弄脏的任何页面永远停留在RAM中。所以你需要交换来持有它们。

  2. 您需要交换以涵盖永远不会被填充的分配。这个空间必须是可用的,即使它不会被使用。没有它,系统将不得不拒绝分配内存,即使它有足够的空闲物理RAM,因为它没有足够的后备存储来允许一次使用它的所有分配。

  3. 醇>

    这些都不需要大量的交换。例如,16GB应该绰绰有余。目的不是让你以牺牲速度为代价来运行更大的工作集。目的是让你有效地使用你的64GB而不必用垃圾来阻塞它,或者保留它以用于永远不会发生的边缘情况。

    (我同意Bert认为4GB很可能就足够了。)


相关问答

添加新评论