Планирование ввода / вывода в LVM на dm-crypt
У меня есть следующие настройки:
- Стандартная стабильная версия Debian (ядро Linux 3.16.7), работающая на Dell PowerEdge R320
- Два жестких диска SATA в RAID1 на контроллере PERC H310 Mini, видимые как
/dev/sda
- цель dm-crypt
dm-0
при поддержке/dev/sda2
- Одна группа томов LVM с одним вышеупомянутым физическим томом
dm-0
- Несколько логических томов
dm-1
,dm-2
и т. д. в вышеупомянутой группе томов, отформатированной какext4
Происходит следующее: когда один процесс начинает массовую запись в логический том, все другие процессы испытывают острую нехватку ввода-вывода - система перестает отвечать на запросы (с задержками до 30 секунд при использовании ввода-вывода).
Я думал, что именно планировщик ввода / вывода отвечает за то, чтобы этого не произошло. я вижу это sda
использования cfq
:
# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
Но все остальные целевые устройства отображения устройств не имеют планировщика ввода-вывода:
# cat /sys/block/dm-0/queue/scheduler
none
# cat /sys/block/dm-1/queue/scheduler
none
# cat /sys/block/dm-2/queue/scheduler
none
Мой вопрос заключается в том, почему нет планирования ввода-вывода для целевых устройств сопоставления устройств, могу ли я включить его или как иначе заставить эту систему реагировать при большой нагрузке ввода-вывода?
1 ответ
Во-первых, совершенно нормально, что устройства DM не имеют никакого планировщика ввода-вывода, как (с определенными исключениями)
Что касается низкой производительности, которую вы записали, учтите, что ваш контроллер H310 не только не имеет кеш-памяти, но даже отключает кэш-память DRAM на физическом диске, а это означает, что ваша система не имеет возможности снизить задержку с помощью кеширования.
Объединение этого с шифрованием, где чтение-изменение-запись является обычным поведением (из-за невыровненного доступа на запись в зашифрованный контейнер), приводит к исключительно низкой производительности ввода-вывода при записи.