当整个虚拟内存(包括RAM和交换空间)几乎满时,就会发生震荡。系统在交换空间和RAM之间花费大量的时间分页内存块,然后再分页,这样就只剩下很少的时间用于实际的工作了。这方面的典型症状是显而易见的:系统变得缓慢或完全没有响应,硬盘驱动器的活动几乎不断地亮着。
如果您能够设法发出如下命令free这显示了CPU负载和内存使用情况,您将看到CPU负载非常高,可能是系统中CPU核心数量的30至40倍。另一个症状是RAM和交换空间几乎都被完全分配了。
之后,查看SAR(系统活动报告)数据也可以显示这些症状。我在我工作的每一个系统上安装了SAR,并使用它进行修复后的法医分析。
适当的交换空间是多少?
许多年前,应该在硬盘上分配的交换空间数量的经验法则是计算机中安装的RAM数量的2倍(当然,大多数计算机的RAM是以KB或MB计算的)。因此,如果计算机有64 KB的RAM,128 KB的交换分区将是最佳大小。这条规则考虑到了这样一个事实,即当时RAM的大小通常很小,为交换空间分配超过2X的RAM并不能提高性能。由于交换内存超过两倍,大多数系统花费的时间比实际执行有用的工作花费的时间更多。
RAM已经成为一种廉价的商品,现在大多数电脑都有大量的RAM,可以扩展到几十GB。我的大多数较新的计算机至少有8GB的RAM,一台有32 GB,我的主工作站有64 GB。我的旧电脑有4到8GB的内存。
当处理具有大量RAM的计算机时,交换空间的限制性能因子远远低于2X乘法器。Fedora 28,定义了当前交换空间分配的思路。我在下面列出了该文件中的一些讨论和建议表。
下表提供了交换分区的推荐大小,这取决于系统中的RAM数量以及是否需要为系统冬眠提供足够的内存。推荐的交换分区大小是在安装期间自动确定的。但是,为了允许休眠,您需要在自定义分区阶段编辑交换空间。
表1:Fedora 28文档中推荐的系统交换空间
| 系统RAM数量 | 推荐交换空间 | 推荐与休眠的交换 |
| 小于2GB | RAM数量的2倍 | RAM数量的3倍 |
| 2GB-8GB | 等于RAM的数量 | RAM数量的2倍 |
| 8 GB-64 GB | 内存数量的0.5倍 | 1.5倍的RAM数量 |
| 超过64 GB | 工作负荷依赖 | 不建议冬眠 |








