У нас есть две машины с многопутевым контроллером SAS, к каждой из которых подключено по 12 физических дисков.
Мы исследовали некоторую странность скорости ввода-вывода и заметили, что на одной машине, где / dev / mpath / mpath * p1 отображается на dm-13 через dm-24 различными способами, dm-13 и dm-14 имеют io планировщик "cfq" на месте. У других dm-устройств в этом списке нет «none», и, похоже, их нельзя изменить.
Я считаю, что другие устройства представлены как другой набор сопоставлений dm- *, и для них ДЕЙСТВИТЕЛЬНО установлен cfq.
На другом компьютере ни одно из устройств, выбранных для размещения в / dev / mpath / mpath * p1, не имеет соответствующих устройств dm с установленным планировщиком.
Я здесь как бы не в своей тарелке, но поскольку iostat ДЕЙСТВИТЕЛЬНО показывает, что некоторые запросы объединяются в dm-13 и dm-14 из первого блока, и ни один из других в любом из блоков, я подозреваю, что мы заплатив за это некоторую цену.
Я копаю не в той яме или это проблема? Если да, то как это исправить, так как echo cfq > /sys/block/dm-15/queue/scheduler
не имеет никакого эффекта, если "none" - единственный вариант в списке?
Я нашел ответ на свой вопрос.
Возможно, у нас несколько необычная установка, где / dev / mapper / mpatha - это весь диск, а / dev / mapper / mpathap1 - это первый раздел на этом диске.
Поскольку мы создали программный raid-массив с использованием устройств / dev / mapper / mpath? P1, у них никогда не было планировщика, поскольку они в конечном итоге подчиняются фактическому базовому диску, которым является устройство / dev / mapper / mpatha.
Все наши / dev / mapper / mpath? устройства имеют планировщик (который я изменил на «крайний срок»), а все устройства / dev / mapper / mpath? p1 - нет. Это также идентично тому, как работает LVM - базовые диски имеют планировщик, но отдельные сопоставления с логическими разделами нет.
Если это Red Hat или CentOS, используйте tuned-adm
утилита для переноса вашего профиля в профиль "предприятие-хранилище":
tuned-adm profile enterprise storage