Linux I/O Scheduler, для кого какой?
Случайно заинтересовался данным вопросом, а для каких дисков какой планировщик выбрать. У нас есть 3 вида планировщика, это noop deadline cfq, давайте разберем каждый.
- noop — простейший планировщик, предназначен для работы с не дисковыми устройствами (ОЗУ или flash) или со специализированными устройствами у которых есть уже встроенный планировщик I/O.
- deadline — цель данного алгоритма минимизация задержек ввода/вывода, и обеспечение поведение близкое к реальному времени, он больше подходит для систем, в которых количество считываемой информации превосходит количество записываемой.
- cfq — для каждого процесса поддерживается своя очередь ввода/вывода, а главная цель планировщика, чтобы как можно равномерней распределять доступную полосу пропускания между всеми запросами, идеально подходит для случаев, когда множество программ могут потребовать доступ к диску.
У меня установлен ssd диск на котором живет вся система, так же есть два террабайтных жестких диска, ну иногда мне приходиться пользоваться различными flash устройствами, и что бы все это работало пошустрее, я маленько оттюнинговал планировщики.
На самом деле все несложно, на ssd происходит минимум записи(да да да, на это повлиял старый миф об отказоустойчивости sdd дисков и ограничение на кол-во перезаписей блоков), для ssd — deadline, для дисковых hdd — cfq, ну и для флешек — noop. Теперь о том как нам все это реализовать. Создаем файл со следующим содержимым:
touch /etc/udev/rules.d/60-schedulers.rules # editor /etc/udev/rules.d/60-schedulers.rules .. # установка планировщика deadline для SSD ACTION=="add|change", KERNEL=="sdc", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline" ACTION=="add|change", KERNEL=="sdc", ATTR{queue/rotational}=="0", ATTR{queue/iosched/fifo_batch}="1" # установка планировщика cfq для HDD ACTION=="add|change", KERNEL=="sda", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq" ACTION=="add|change", KERNEL=="sdb", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq" # Установка планировщика для флешек ACTION=="add|change", KERNEL=="sdd", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="noop" ACTION=="add|change", KERNEL=="sde", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="noop" ..
В файле присутствую комментарии, думаю вы сами в состояние заменить на нужные значения.
- P.S. Надо изменять значения KERNEL на имя ваших дисков.
- Взято тут