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

Изменение планировщика ввода-вывода для конкретного диска

Я хотел бы навсегда изменить планировщик ввода-вывода для определенного диска в Fedora 20. Согласно тому, что я обнаружил, этого можно достичь, выполнив следующую строку оболочки от имени пользователя root:

echo {НАЗВАНИЕ-ПЛАНИРОВЩИКА}> / sys / block / {НАЗВАНИЕ-УСТРОЙСТВА} / очередь / планировщик

Однако после перезагрузки изменение теряется. Кажется, что средство для достижения того, что я хочу, - это создать службу systemd, но я полностью потерялся, поскольку ее нужно запускать после монтирования дисков. Может ли кто-нибудь помочь мне написать такую ​​службу systemd? Также приветствуется любое другое жизнеспособное решение.

В tuned и tuned-utils пакеты доступны для Fedora (они также есть в Red Hat). Это системная услуга, которая может применяться предопределенные или определяемые пользователем системные профили и настраиваемые на лету, включая параметры монтирования, планировщики дисков, параметры sysctl и т. д. Многие администраторы Liinux игнорируют эти настройки.

См. Руководство по Fedora 20:
http://docs.fedoraproject.org/en-US/Fedora/20/html/Power_Management_Guide/sect-tuned-installation-and-usage.html

Что-то вроде:

tuned-adm profile virtual-guest

или

tuned-adm profile enterprise-storage

Вот расписание настроек для RHEL. Fedora может немного отличаться.

Я знаю, что вы ищете настройки на определенном диске, но я обычно применяю параметры планирования ввода-вывода ко всем дискам. В любом случае, посмотрите, подходят ли вам предопределенные профили (нет необходимости дублировать усилия). Если нет, профили легко настроить.

Вам просто нужно создать файл в /etc/systemd/system/io-scheduler.service со следующим содержанием:

[Unit]
Description=I/O Scheduler Setter
After=local-fs.target

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo noop > /sys/block/sda/queue/scheduler'
TimeoutSec=0
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Затем включите службу для автоматического запуска при загрузке и запустите ее для текущего сеанса с помощью:

chmod 755 /etc/systemd/system/io-scheduler.service
systemctl enable io-scheduler.service
systemctl start io-scheduler.service

Вы можете изменить планировщик по умолчанию для всех дисков, добавив следующее в командную строку ядра, которую можно найти в /boot/grub/menu.lst:

elevator={SCHEDULER-NAME}

@ewwhite, вы ответили на вопрос, не задаваемый оператором.

Ответ на «навсегда изменить планировщик ввода-вывода для определенного диска» не предоставляется в предложенном вами ресурсе, а комментарий «способ документирования и задумки Fedora и Red Hat» не соответствует действительности по нескольким причинам, которые я выиграл » не попасть сюда.

Чтобы изменить планировщик io для определенного диска, оператор выбрал правильный метод:

echo noop> / sys / block / sda / очередь / планировщик

То, как он решает запустить эту команду, несколько произвольно; это можно сделать с помощью приложения для управления конфигурацией, сценария или создания служебной единицы, как он это сделал.


@boscoe - это будет проблемой в системах grub2. Вопрос направлен на F20. Кроме того, он применит подъемник ко всем дискам, чего не было после операции.