假设我有两个交换分区,/dev/sdb and /dev/sdc
, 在哪里/dev/sdb
I/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*
。