我应该有多大的交换分区?

我正在(重新)在我的东芝NB100上网本(Intel Atom,120GB HD,2GB RAM)上安装Ubuntu。 已经有一个分区,我用我的所有媒体和文档称之为“Stuff”。 将删除我有Win7的那个(使它成为交换),然后有一个恢复。

我应该创建一个多大的交换分区?

请参阅https://help.ubuntu.com/community/SwapFaq

这是一段摘录:


我需要多少交换?

对于小于1GB的物理内存(RAM),强烈建议交换空间作为基本最小值应等于RAM的数量。 此外,由于收益递减,建议交换空间最大为RAM数量的两倍,具体取决于系统可用的硬盘空间量。

对于更现代的系统(> 1GB),如果使用hibernate模式,则交换空间应至少等于物理内存(RAM)大小,否则您需要最小的舍入(sqrt(RAM))和最大值的两倍内存 拥有比实际使用的更多交换空间的唯一缺点是您将为其保留的磁盘空间。

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

对于上网本,您可能希望能够hibernate计算机。 hibernate过程要求将RAM中的所有数据¹写入硬盘,交换中,这意味着至少拥有与RAM一样多的交换空间是个好主意。 如果您不需要hibernate计算机,则不需要那么多交换。

现在,诀窍是这个交换空间实际上不必是专用的交换分区。 像Windows一样,内核可以在常规文件系统上使用交换文件,它们和交换分区一样快。 但是,使用交换文件添加更多交换要比重新分区更容易。 有关如何添加交换文件的说明,请参阅此答案的常见问题解答 。

所以,简而言之,不要担心你需要多少交换; 如果您需要更多,您可以轻松添加它。

¹:这不是真的 – 在将数据写入RAM进行交换之前,内核将从内存中删除所有可能的内容。 这通常包括很多程序代码(因为内核只能从光盘读回)和所有光盘缓存等。

²:此function实际上取决于文件系统。 大多数linux文件系统支持在它们上面交换文件 – ext4,这是默认的,当然可以。 新的btrfs文件系统是一个例外,所以如果你正在使用它,你将需要一个交换分区。

通常它应该等于你的RAM,这使得2GB应该足够用于日常应用程序。

我认为规则说 – 对于1 GB或更少的RAM交换必须是RAM的两倍。 – 超过1 GB,你不需要使用超过2 GB的交换。

swap区域可以看作是Linux系统的虚拟RAM。 它基本上在物理内存(RAM)已满时使用。 如果系统需要更多内存资源,则内存中的非活动页面将移动到交换空间。 通常, swap应该是物理内存大小的一半。 如果RAM为4GB,则2GB足够用于交换。 如果swap的大小等于或大于RAM,那就足够了。