我们有两台带有多路SAS控制器的机器,每台机器都连接了12个物理磁盘。
我们正在研究一些I / O速度奇怪的问题,并注意到在一台机器上,/ dev / mpath / mpath * p1以各种方式映射到dm-13到dm-24,dm-13和dm-14有一个io调度器“cfq”到位。 该列表中的其他DM设备有“无”,似乎无法更改。
我相信其他设备是作为一组不同的dm-映射表示的,那些有cfq设置。
在另一台机器上,select位于/ dev / mpath / mpath * p1中的设备没有任何设备具有相应调度程序的dm设备。
我有点不在这里,但是因为iostat能显示一些请求被合并在第一个盒子的dm-13和dm-14,而其他盒子都没有,所以我怀疑我们是为此付出一些代价。
我是在错误的洞里挖掘,还是这是一个问题? 如果是这样,我怎么能修复它,因为当目前列出的唯一选项是“none”, echo cfq > /sys/block/dm-15/queue/scheduler没有任何作用?
我已经find了我自己的问题的答案。
或许我们有一个不寻常的设置,其中/ dev / mapper / mpatha是整个磁盘,/ dev / mapper / mpathap1是该磁盘上的第一个分区。
由于我们使用/ dev / mapper / mpath?p1设备构build了软件raidarrays,因此它们从来没有调度程序,因为它们实际上最终会推迟到实际的基础磁盘(即/ dev / mapper / mpatha设备)。
我们所有的/ dev / mapper / mpath? 设备有一个调度程序(现在我已经更改为“截止date”),所有的/ dev / mapper / mpath?p1设备都没有。 这与LVM的工作方式也是一样的 – 底层磁盘有一个调度程序,但是逻辑分区的个别映射却没有。
如果这是红帽或CentOS,请使用tuned-adm实用程序将您的configuration文件转移到“企业存储”configuration文件:
tuned-adm profile enterprise storage
了解RedHat推荐的调整configuration文件