我应该将我的交换分区设置多大?

我正在我的东芝NB100上重新安装Ubuntu netbook版(Intel Atom,120GB硬盘,2GB RAM)。已经有一个我称之为“Stuff”的分区,其中包含所有媒体和文档。将删除我曾经安装Win7的那个分区(将其作为交换分区),然后还有一个恢复分区。
我应该创建多大的交换分区?
5个回答

请参阅https://help.ubuntu.com/community/SwapFaq
这里是一段摘录:

我需要多少交换空间?

对于少于1GB物理内存(RAM)的情况,强烈建议将交换空间设置为与RAM相等的最低基准。此外,根据系统可用的硬盘空间量而定,建议将交换空间设置为RAM数量的两倍以内,因为随着交换空间增加,收益会逐渐减少。

对于更现代化的系统(>1GB),如果你使用休眠功能,则交换空间应至少与物理内存(RAM)大小相等;否则,你需要至少round(sqrt(RAM))的交换空间,并且最多可以是RAM数量的两倍。拥有比实际使用更多的交换空间唯一的缺点是你需要为其保留磁盘空间。

“收益递减”意味着如果你需要超过两倍RAM大小的交换空间,最好增加更多的RAM,因为硬盘驱动器(HDD)访问速度大约比RAM访问速度慢10³倍,所以原本需要1秒的操作,突然需要超过15分钟!即使在快速固态硬盘驱动器(SSD)上也还需要超过一分钟。


对于一台上网本,你可能希望能够将电脑休眠。休眠的过程需要将RAM中的所有数据写入硬盘的交换空间,这意味着最好有至少与RAM相同大小的交换空间。如果你不需要将电脑休眠,那么就不需要那么大的交换空间。
现在,诀窍在于这个交换空间实际上并不一定要是专用的交换分区。和Windows一样,内核可以使用常规文件系统上的交换文件,它们的速度和交换分区一样快。通过交换文件添加更多的交换空间比重新分区要容易得多。请参考FAQthis answer了解如何添加交换文件的说明。
简而言之,不必担心需要多少交换空间;如果需要更多,你可以很容易地添加。

¹:这并不完全正确 - 在将RAM中的数据写入交换空间之前,内核会尽可能地从内存中移除所有可以移除的内容。这通常包括大量的程序代码(因为内核可以直接从磁盘上读取)以及所有的磁盘缓存等。

²:这个功能实际上是依赖于文件系统的。大多数Linux文件系统都支持在其上使用交换文件 - 默认的ext4文件系统当然支持。新的btrfs文件系统是一个例外,所以如果你正在使用它,你将需要一个交换分区。


通常它应该等于你的内存,即2GB,这对日常应用来说应该足够了。

我认为有一个规则说: - 对于1 GB或更少的RAM,交换空间必须是RAM的两倍。 - 超过1 GB的情况下,您不需要使用超过2 GB的交换空间。

交换区可以被视为Linux系统的虚拟内存。当物理内存(RAM)已满时,它基本上会被使用。如果系统需要更多的内存资源,那么内存中的非活动页面会被移动到交换空间中。一般来说,交换区的大小应为物理内存的一半。如果RAM为4GB,则2GB的交换区足够大。如果交换区的大小等于或大于RAM,那将完全足够。