我们有两台带多路径SAS控制器的机器,每台机器都连接了12个物理磁盘.
我们正在调查一些I / O速度奇怪,并注意到在一台机器上,/ dev / mpath / mpath * p1以各种方式映射到dm-13到dm-24,dm-13和dm-14有一个io调整“cfq”的调度程序.该列表中的其他dm设备具有“无”,并且似乎无法更改.
我相信其他设备被呈现为一组不同的dm- *映射,而那些DO具有cfq set.
在另一台机器上,没有选择在/ dev / mpath / mpath * p1中的设备具有相应的具有调度程序集的dm设备.
我有点偏离我的元素,但是因为iostat表示某些请求正在第一个框的dm-13和dm-14上合并,而且两个框中没有其他任何请求合并,我怀疑我们是付出一些代价.
我是在挖洞,还是这个问题?如果是这样,我怎么能修复它,因为echo cfq>当“none”是唯一当前列出的选项时,/ sys / block / dm-15 / queue / scheduler没有任何效果?
解决方法
我找到了自己问题的答案.
我们可能有一个稍微不同寻常的设置,其中/ dev / mapper / mpatha是整个磁盘,而/ dev / mapper / mpathap1是该磁盘上的第一个分区.
由于我们使用/ dev / mapper / mpath?p1设备构建了软件raid数组,因此它们永远不会有调度程序,因为它们实际上最终会遵循实际的底层磁盘,即/ dev / mapper / mpatha设备.
我们所有的/ dev / mapper / mpath?设备有一个调度程序(我现在改为’截止日期’),所有/ dev / mapper / mpath?p1设备都没有.这也与LVM的工作方式相同 – 底层磁盘具有调度程序,但逻辑分区的单独映射却没有.