是否可以在交换分区之间平衡地分配负载?

是否可以在交换分区之间平衡地分配负载?

假设我有两个交换分区,/dev/sdb and /dev/sdc, 在哪里/dev/sdbI/O 速度比/dev/sdc是否可以这样配置,当操作系统决定有 5 MB 的 RAM 内容需要交换时,它会将其中的 4 MB 定向到/dev/sdb以及 1 MB 至/dev/sdc提供最佳的交换速度?

答案1

如果/dev/sdb比 快 4 倍, 那么先/dev/sdc加满 再 出发 会 更快./dev/sdb/dev/sdc

请记住,这不仅仅是拆分顺序读取和写入;还有寻道延迟、磁盘旋转时间,以及同步两个磁盘,以便一个写入四个部分,而另一个写入一个部分。顺序吞吐量在理论上可能更高,但这并不实际。

也就是说,安装交换分区有优先级。如果您要挂载两个交换分区,以便/dev/sdb首先使用,然后使用/dev/sdc,请考虑以下示例:

sudo swapon -p 10 /dev/sdb
sudo swapon -p 5  /dev/sdc

在中/etc/fstab,您可以传递pri选项来设置优先级,如下所示:

/dev/sda none swap defaults,pri=10 0 0
/dev/sdb none swap defaults,pri=5  0 0

举个实际的例子,如果你使用兹拉姆由于 zram 比硬盘和固态硬盘快得多,因此您希望首先使用 zram 交换分区。在这里,您可以看到优先使用慢速设备的四个 zram 设备/dev/zd16

deltik@node51 [~]$ swapon -s
Filename                Type        Size    Used    Priority
/dev/zd16                               partition   8388604 0   -1
/dev/zram0                              partition   1524800 275252  5
/dev/zram1                              partition   1524800 275400  5
/dev/zram2                              partition   1524800 276296  5
/dev/zram3                              partition   1524800 275392  5

(在 Ubuntu 上,软件包方便地提供了 zram 交换zram-config。)

尽管/dev/zram*比顺序速度快几个数量级/dev/zd16,我还是不想平衡工作负载,因为/dev/zd16寻道速度比执行速度慢得多/dev/zram*

相关内容