让内核感知设备共置

让内核感知设备共置

我有一台服务器,该服务器配备了一个大型硬件 RAID6 阵列,该阵列配置了两个卷,由 Linux 呈现为和sdasdb是的,我知道,但它是租用的 colo,就是这样配置的,遗憾的是我不得不忍受它)。

我有一个使用 的 I/O 密集型进程sdb。我使用 运行ionice -c3,因为我希望它的优先级低于其他任何进程。不幸的是,ionice不知道这两个设备实际上共享同一阵列的带宽。当该进程繁忙时,内核会发现它sdb很安静,并为其提供所需的所有带宽。但是,这可能会sda非常慢,因为(据我所知)它ionice是基于每个设备工作的。

有没有办法让内核平衡磁盘 I/O全部设备?

答案1

您正在使用什么 IO 调度程序?

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

它将显示您正在运行哪一个。我会尝试 noop(基本上是先到先得)、deadline 和 CFQ,看看哪一个适合您。

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

相关内容