Рассмотрим на примере системы Gentoo Linux планировщик очереди ввода/вывода.
У меня в системе два типа дисков:
sda - SSD быстрый диск. sdb - HDD обычный диск.
Все диски подключены по разъему sata.
В моей системе три планировщика обработки очередей ввода/вывода.
Так вот, по умолчанию для всех дисков у меня очередь обработки cfq.
# cat /sys/block/sdb/queue/scheduler noop deadline [cfq]
То что в скобках используется в данный момент (по умолчанию).
noop или deadline — больше подходит для ssd.
cfq — более универсальный и подходит ко всем типам дисков.
Я выбрал noop, самый простой и менее ресурсоемкий.
Сначала временно проверяем работу, после перезагрузки система метод сбросит на тот что используется по умолчанию.
Метод не сразу заработает, нужно время, несколько секунд.
# echo noop > /sys/block/sda/queue/scheduler [noop] deadline cfq
Протестировали, теперь укажем системе какой по умолчанию обработчик очередей.
Настройка ядра системы:
# make menuconfig
И далее и следуем по пути:
Enable the block layer ---> IO Schedulers ---> Default I/O scheduler (CFQ) ---> Выбираем No-op или Deadline (тут что вам больше подходит).
После, запускаем пере сборку ядра.
# make && make install && make modules_install
Осталось только указать что бы планировщик у обычного диска (HDD) был CFQ.
Создаем в udev правило.
# cat /etc/udev/rules.d/50-schedulers.rules ACTION=="add|change", KERNEL=="sdb", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"
Перезагружаем компьютер и смотрим какой планировщик стоит у определенного диска.
# cat /sys/block/sdb/queue/scheduler noop deadline [cfq] # cat /sys/block/sda/queue/scheduler [noop] deadline cfq
Добавлю, для nvme дисков лучше использовать планировщик none, он самый лучший для дисков nvme.
cat /sys/block/nvme0n1/queue/scheduler [none] mq-deadline kyber
Вот и все, мы только что разобрали в примере систему Gentoo Linux планировщик очереди ввода/вывода операций диска.
FreeBSD Linux включаем TRIM
Pingback: FreeBSD Linux включаем TRIM - FRYAHA.RU