我有一个服务器,配有一个大硬件RAID6阵列,配置有两个卷,由
Linux作为sda和sdb提供(是的,我知道,但这是一个以这种方式配置的租用colo,遗憾的是我不得不忍受它) .
我有一个使用sdb的I / O密集型进程.我使用了ionice -c3,因为我希望它的优先级低于其他任何东西.不幸的是,ionice并不知道这两个设备实际上共享相同阵列的带宽.当该进程繁忙时,内核会看到sdb是安静的,并为其提供所需的全部带宽.然而,这可能使sda非常慢,因为(据我所知),ionice可以在每个设备的基础上工作.
有没有办法让内核在所有设备上平衡磁盘I / O?
解决方法
你使用什么IO调度程序?
cat / sys / block /< disk> / queue / scheduler
它会告诉你你正在运行哪一个.我会尝试noop(这是先到先得,先发球),截止日期和CFQ,看看哪个适合你.
CFQ是RHEL / SUSE的默认设置,Ubuntu的最后期限和没有人的noop(但是应该让后端设备处理你的调度而不是Linux试图平衡它.