Answers:
具有两倍内存大小的交换分区只是一般准则,而不是一成不变的规则。如果要挂接到磁盘(休眠),则至少需要1倍的内存大小,并添加足够的备用空间来使用超出物理内存的“交换”内存。因此建议使用1.5至2倍。
我认为这还取决于您的应用程序使用情况的性质和物理内存的大小等。如果您拥有超过2GB RAM的任何内容,并且在大多数情况下使用非内存密集型应用程序,则可能根本不需要交换分区,无论如何大。
拥有较大的交换文件和缓慢的硬盘也会对您的系统造成很大的影响。
这里有一些有用的读物:
Ubuntu SwapFAQ
SUperuser-交换分区大小为4GB RAM
我需要交换分区吗?如果需要,交换分区有多大?
这是一条旧的经验法则,我认为这不再有意义,因为如今,这可能等同于相对于存储速度的大量交换。
您应该拥有的最小交换量是您的典型稳态使用量。(这是长时间运行后达到的数量,这时您的大部分可用内存都由页面缓存组成。交换保护是一个很好的读取方法。)
但是我在这里告诉您还有一个最大值……如果响应能力根本不值得关注。
桌面场景:通常,当您的内存不足时(例如,意外地放出诸如的叉子炸弹时make -j
)会发生以下情况:首先,您注意到用户界面有点滞后,这意味着您大约有一分钟的时间来消除违规行为鼠标指针变得无响应之前的过程。但这仅仅是开始!然后,您会看到计算机将坐在那里,并且其SSD LED持续亮着,在剩余的交换空间中搅拌了几十分钟到几个小时,而您什么也做不到(除非拔掉插头)。在这一点上,您将发誓要让OOM杀手早点踢,而不是浪费您的时间。
因此,从可用性的角度来看,拥有通常不使用的大量交换空间实际上是不好的-在发生灾难性的内存泄漏(例如,不可避免的OOM)的情况下,这只会延迟不可避免的时间。 ,出于所有实际目的,不可用。
我通常会进行½-2GiB交换,无论计算机有多少RAM。