让内核知道设备托管

Flu*_*lup 7 linux ionice

我有一个带有大型硬件 RAID6 阵列的服务器,该阵列配置了两个卷,由 Linux 呈现为sdasdb(是的,我知道,但这是一个以这种方式配置的租来的 colo,遗憾的是我不得不忍受它)。

我有一个使用sdb. 我已经运行了ionice -c3,因为我希望它的优先级低于其他任何东西。不幸的是,ionice不知道这两个设备实际上共享同一个阵列的带宽。当该进程繁忙时,内核会看到它sdb是安静的,并为其提供所需的所有带宽。但是,这可能会变得sda非常慢,因为(据我所知)ionice是基于每个设备的。

有没有办法让内核在所有设备上平衡磁盘 I/O ?

The*_*ins 2

您使用什么 IO 调度程序?

cat /sys/block/<disk>/queue/scheduler

它会告诉你你正在运行哪一个。我会尝试 noop(这几乎是先到先得)、deadline 和 CFQ,看看哪一个适合你。

CFQ 是 RHEL/SUSE 的默认设置,Ubuntu 的默认设置,没有人的 noop(但应该让后端设备处理你的调度,而不是 Linux 尝试平衡它。