Назад | Перейти на главную страницу

Уведомление ядра о размещении устройств

У меня есть сервер с большим аппаратным массивом RAID6, сконфигурированный с двумя томами, представленный Linux как sda и sdb (да, я знаю, но это арендованный коло, который был настроен таким образом, и, к сожалению, мне приходится с этим жить).

У меня есть процесс с интенсивным вводом-выводом, который использует sdb. Я бегал с ionice -c3, так как я хочу, чтобы он имел более низкий приоритет, чем что-либо еще. К сожалению, ionice не знает, что два устройства фактически используют одну и ту же полосу пропускания массива. Когда этот процесс занят, ядро ​​видит, что sdb работает тихо и обеспечивает всю необходимую пропускную способность. Однако это может сделать sda очень медленно, потому что (насколько я понимаю) ionice работает для каждого устройства.

Есть ли способ заставить ядро ​​балансировать дисковый ввод-вывод через все устройства?

Какой планировщик ввода-вывода вы используете?

cat /sys/block/<disk>/queue/scheduler

Он покажет вам, какой из них вы используете. Я бы попробовал noop (что в значительной степени означает «первым пришел - первым обслужен»), дедлайн и CFQ и посмотрю, что вам подходит.

CFQ - это значение по умолчанию для RHEL / SUSE, крайний срок для Ubuntu и noop ни для кого (но он должен позволять внутреннему устройству обрабатывать ваше планирование, а не пытаться сбалансировать его Linux.