多个交换空间是否有效?

我在一块130GB的固态硬盘上安装了Ubuntu,默认只分配了1GB的交换空间。我知道交换空间应该至少与RAM的大小相同,所以我想增加它。我不想调整大小,而是想在我的1TB硬盘上创建一个新的分区。我想知道这样做会不会对交换空间的性能造成很大的影响,还是只会有一点影响,因为额外的空间是在硬盘上而不是固态硬盘上。或者说,是否拥有多个位置是一个不好的主意。

1你有多少内存? - rtaft
1个回答

一般来说,这主要取决于您的使用情况。例如,如果您不使用磁盘休眠(它使用交换空间进行休眠),那么您就不需要太多的交换空间,1GB可能就足够了。
回到您的问题。如果您经常进行交换,例如因为内存经常不足,而且您在SSD上有一个交换分区,另一个在HDD上,这将影响性能,因为在这种情况下HDD将成为瓶颈。 如果您只是想为某些特殊情况增加一些交换空间,以防止内存溢出杀手,您可以将SSD上的交换空间与HDD上的交换分区相比具有更高的优先级。这样,当SSD上的交换区域用尽时,会额外使用HDD上的交换空间。
来自man 2 swapon
交换页面按优先级顺序从区域中分配,优先级最高的先分配。对于具有不同优先级的区域,会首先用完优先级较高的区域,然后再使用优先级较低的区域。如果两个或多个区域具有相同的优先级,并且它是可用的最高优先级,则页面将在它们之间轮流分配。

man swapon

优先级是一个介于-1和32767之间的值。更高的数字表示更高的优先级。有关交换优先级的完整说明,请参阅swapon(2)。在/etc/fstab的选项字段中添加pri=value,以便与swapon -a一起使用。当未定义优先级时,默认为-1。

要更改交换分区的默认优先级,您需要添加/修改/etc/fstab

/dev/<swap-ssd> swap swap defaults,pri=1000     0 0
/dev/<swap-hdd> swap swap defaults              0 0

6如果您在不同的磁盘上有两个相同优先级的交换分区,内核将会对它们进行条带化交换。这就像是RAID0一样,可以提升性能。 - xealits
@xealits 很酷,谢谢你分享这个。 - Louis Waweru