多个交换空间有效吗?

Ste*_*hen 7 partitioning swap

我在 130 SSD 上安装了 Ubuntu,默认情况下它只分配 1 GB 交换空间。我知道交换空间至少应该是你的 RAM 的大小,所以我想增加它。我不想调整大小,而是想在 1tb 驱动器上创建一个新分区。我想知道这是否会严重或轻微地损害交换空间的性能,因为额外的空间位于硬盘驱动器上,而不是 SSD 上。或者如果拥有多个地点是一个坏主意。

Tho*_*mas 6

一般来说,这很大程度上取决于您的用例。例如,如果您不使用休眠到磁盘(使用交换来休眠),则不需要那么多的交换空间,1GB 可能就足够了。

回到你的问题。如果您进行大量交换,例如因为内存始终不足,并且一个交换分区位于 SSD 上,另一个位于 HDD 上,则这将影响性能,因为 HDD 将成为这种情况下的瓶颈。
如果您只是想为某些极端情况添加更多交换空间以防止内存不足,您可以在 SSD 上添加交换空间,其优先级高于 HDD 上的交换分区。这将导致 SSD 上的交换空间首先被填满,当 SSD 上的交换区域耗尽时,HDD 上的交换空间将被额外使用。

man 2 swapon

交换页按优先级顺序从区域中分配,优先级最高的在前。对于具有不同优先级的区域,先用完较高优先级的区域,然后再使用较低优先级的区域。如果两个或多个区域具有相同的优先级,并且这是可用的最高优先级,则页面将在它们之间循环分配。

man swapon

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

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

/dev/<swap-ssd> swap swap defaults,pri=1000     0 0
/dev/<swap-hdd> swap swap defaults              0 0
Run Code Online (Sandbox Code Playgroud)

  • 另外,如果不同磁盘上有 2 个相同优先级的交换分区,内核将[条带交换到它们](https://raid.wiki.kernel.org/index.php/Why_RAID%3F#Swapping_on_RAID)。它就像raid0,具有性能提升。 (6认同)