我们还需要服务器上的交换分区吗?

我已经阅读了这个问题 ,但是在服务器而不是台式机或笔记本电脑的环境中提出了这个问题 。

如果笔记本电脑上安装了大量的RAM,比如8 GB,我们还需要一个交换空间吗?

有一种常见的误解,即交换空间会对系统性能产生负面影响。 这是不正确的。 只要你有足够的RAM,拥有一个交换区域,无论其大小如何都不会损害性能。 影响性能的因素是RAM短缺并有效使用交换空间。

  1. 如果你没有交换空间并且碰巧没有RAM,那么内核会选择一个或多个它认为很好的候选进程(尽管你可能会给它一些提示 )然后杀死它们。

  2. 如果你有一个交换空间并且没有RAM,内核将选择较少使用的内存页并将它们放在交换区以释放RAM。 这会降低系统速度,但您的应用程序不会受到影响。

我总是喜欢案例2.因为内核认为我的应用程序值得一试,我感到不舒服,因为我感到不舒服。 此外,由于平均磁盘的当前大小在TB范围内,因此保留几个百分比的交换通常不是问题。

如果你有3GB或更高的RAM,Ubuntu将自动不使用 Swap空间,因为它对操作系统来说已经足够了。

现在你真的需要一个交换分区吗?

我认为答案是肯定的。 因为您不知道将来要安装或执行的操作可能需要交换空间。 此外,如果您计划使用hibernate模式,则可能需要一些交换空间。 实际上您不必拥有交换分区,但建议您在正常操作中耗尽这么多内存。

有关是否需要交换的更多信息,请参阅Ubuntu交换常见问题或交换要求

在过去6年左右的时间里,我使用了至少8GB RAM的桌面系统。 我不记得系统在正常使用情况下换出内存的情况 – 我经常用htop监视资源使用情况。 即使我同时运行4个虚拟机(服务器)用于开发目的,也不会发生交换。

话虽如此,如果您运行的应用程序是内存密集型的(例如video编辑,图像编辑,大型数据库表操作等),您可能会遇到系统可能内存不足的情况。 在这种情况下,可能需要具有交换空间。 将其视为最后的安全网。 考虑到当今系统的多TB容量,交换分区中的几千兆字节值是多少? 最好是安全而不是抱歉:-)

拥有交换空间总是一件好事。

在这里,我引用了Michael Jang的RHCSA / RHCE认证学习指南

Linux交换空间

这种空间用于扩展系统上有效RAM的数量,作为当前运行程序的虚拟内存。 但你不能只购买额外的RAM并消除交换空间。 即使你有数千兆字节的RAM,Linux也会将不经常使用的程序和数据移动到交换空间。

对于最高2GB的系统,默认交换空间大小是已安装RAM的两倍。 超过2GB,它是RAM + 2GB的数量。 但那些并非“硬性和快速”的规则。 具有几GB RAM的工作站经常使用非常少的交换空间..但是它可以更频繁地用于一次未重启几个月或者某些服务需求量大的系统上。

这取决于您在系统上运行的内容。

如果你正在创建内容,那么仍然可以分配交换空间,所以如果你的内存耗尽,那么你的进程就会变慢而不是被杀死而且可能会丢失工作。

如果您的机器只是运行程序,那么您不需要甚至不需要交换空间。 我设计并构建了许多适合这种用途的自助服务终端显示系统。 我宁愿一个过程突然死而不是慢,因为那时我可以检测到这个条件并纠正它。

如果您需要交换空间或更多交换空间,可以在文件系统上创建交换文件。 当然,它们不支持hibernate,但对于具有SSD驱动器和大量RAM的笔记本电脑来说,这是一种合理的方法。