我有一个服务器,它有一个很大的硬件RAID6数组,配置了两个卷,由Linux表示为sda和sdb (是的,我知道,但它是以这种方式配置的一个租用的colo,遗憾的是我不得不忍受它)。
我有一个使用sdb的I/O密集型过程。我已经使用了ionice -c3,因为我希望它比其他任何东西都具有更低的优先级。不幸的是,ionice不知道这两个设备实际上是在共享同一个数组的带宽。当进程繁忙时,内核会看到sdb是安静的,并给它它所需的所有带宽。然而,这会使sda非常慢,因为(据我所知) ionice在每个设备上都能工作。
有没有办法让内核在所有设备之间平衡磁盘I/O?
发布于 2013-08-14 20:27:01
您在使用什么IO调度程序?
cat /sys/block/<disk>/queue/scheduler
它会告诉你你在跑哪一个。我会尝试noop (基本上是先到先得,先服务),最后期限和CFQ,看看哪个适合你。
CFQ是RHEL/SUSE的默认设置,是Ubuntu的最后期限,任何人都不能使用noop (但是应该让后端设备处理您的调度,而不是让Linux来平衡它。
https://serverfault.com/questions/508529
复制相似问题