Як перейти до планувальника noop?


29

У мене в ноутбуці є SSD, і мені сказали, що краще переходити на "noop" планувальник.

Як я переходжу до планувальника noop і де я можу внести зміни, щоб воно було стійким під час перезавантаження?

Відповіді:


21

Редагувати / etc / default / grub, наприклад gksudo gedit /etc/default/grub, сюди потрібно додати elevator = noop.

Змінити GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"на GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop".

Потім запустіть sudo update-grub2і перезапустіть.


6
Відповідь "Анонімний" хороша для зміни за замовчуванням для всіх дисків у системі. Навпаки, відповідь Іллі Кагана встановлює типовий для конкретних дисків. Для ноутбука з одним приводом або добре працює. Для систем з декількома дисками - особливо це стосується дисків як із SSD, так і з обертовими накопичувачами.
Ройс Вільямс

28

Припустимо, ваш жорсткий диск є /dev/sda. Тоді ви можете перевірити, який планувальник зараз використовується для цього:

cat /sys/block/sda/queue/scheduler

(Планувальник, який зараз використовується, буде оточений [ ]дужками.)

І ви можете змусити його використовувати планувальник noop:

echo noop > /sys/block/sda/queue/scheduler

Дивіться цю статтю для отримання додаткової інформації.

Щоб зміни зберігалися, ви можете ввести команду /etc/rc.local.


1
Я отримую помилку "відмовлено у дозволі", виконуючи це, навіть із судо
Лукас Бустаманте,

@LucasBustamante Ви біжите sudo echo noop > /sys/block/sda/queue/scheduler? Це не працює, оскільки оболонка, яка працює як ваш користувач, встановлює перенаправлення перед запуском команди, вихід якої переспрямований. Ви можете використовувати echo noop | sudo tee /sys/block/sda/queue/schedulerзамість цього. Див. Не можете повторювати "привіт"> x.txt навіть із судо? і як вирішити "дозвіл відхилений", коли використовується sudo з перенаправленням в Bash? для отримання додаткової інформації та інших підходів. (Якщо ви це не маєте на увазі, будь ласка, повідомте мене про це.)
Елія Каган

дякую за відповідь, що теж не допомогло. Я використовую NVMe SSD, я думаю, він взагалі не використовує планувальник, з того, що я зрозумів serverfault.com/questions/693348/…
Лукас Бустаманте,

14

Ця посилання на Debian показує, як динамічно виявляти SSD та відповідно змінювати планувальник:

У системах з різними типами приводів ви можете налаштувати параметри за допомогою правила udev (create /etc/udev/rules.d/60-ssd-scheduler.rules):

# Встановити планувальник термінів для не обертових дисків

 ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0",ATTR{queue/scheduler}="deadline"

Щоб переконатися, що ваше ядро ​​може виявити стан обертання:

$ for f in /sys/block/sd?/queue/rotational; do printf "$f is "; cat $f; done
/sys/block/sda/queue/rotational is 1
/sys/block/sdb/queue/rotational is 1
/sys/block/sdc/queue/rotational is 0   <=== Only this is SSD!

Все вищесказане цитується безпосередньо з посилання на Debian, яке має багато інших елементів, що цікавлять користувачів, які вперше вживають SSD.


root @ titan: / home / kessaras # for f in / sys / block / sd? / queue / rotational; зробити printf "$ f є"; кіт $ ​​f; done / sys / block / sda / queue / rotational is 0 / sys / block / sdb / queue / rotational is 0 / sys / block / sdc / queue / rotational is 1 / sys / block / sdd / queue / rotational is 1 root @titan: / home / kessaras # cat / sys / block / sd * / черга / планувальник [mq-крайний термін] none [mq-крайний термін] none [mq-крайний термін] none [mq-крайний термін] none Ніщо Щось тут дуже не так. Він змінює всі жорсткі диски на термін
Павлос Теодору

Команда нічого не змінює - вона просто повідомляє, чи є диск "обертовим" (HDD). Поворотний = 0 означає, що це SSD або інший не спінінг.
Ройс Вільямс

що ти означає, що це нічого не змінює? І правило udev написане там, що це робить? Це всередині жовтої коробки теж. Ви маєте на увазі, що я сліпий чи я не можу читати?
Павлос Феодору

1
Моя помилка. Здається, в останньому ядрі вони видалили планувальники ... ??? для f in / sys / block / sd? / queue / планувальник; зробити printf "$ f є"; кіт $ ​​f; done / sys / block / sda / queue / планувальник є [mq-крайний термін] none / sys / block / sdb / queue / планувальник є [mq-rok] none / sys / block / sdc / queue / планувальник є [mq-limit ] none / sys / block / sdd / queue / planer - це [mq-rok] none Стаття, і все, що ви написали, є нормальним. Просто є лише кінцевий термін і нічого іншого не можна вибрати.
Павлос Феодору
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.