10.04.2012 21:23
OlegON
 
Исходим из того, что у меня десктоп и веб-сервер.
Долгое время сидел на CFQ, сейчас сменил все же на Deadline, по моему полегче забегало... Совпало с ребутом, да и потупее сам Deadline, чтобы глючить... Началось с того, что при записи на NFS как-то странно подтормаживал запуск других программ. Поэтому сменил, теперь присматриваюсь.
Вывод по чтению отзывов простой - CFQ (иногда с глюками) стремится к распределению полосы среди всех процессов, Deadline в приоритете держит чтения, особенно линейное. Выбрал второе.
09.09.2014 16:40
OlegON
 
Собственно, отслеживаю тему. Необходимо разделять влияние планировщика на ввод-вывод с дисками и SSD в силу физической разницы между этими устройствами. Необходимо так же понимать, что на данный момент, например, читать статьи по этой теме старше 2014 года нет смысла, поскольку все типы планировщиков были переписаны, некоторые не один раз. Ну, если, конечно, речь не идет про какое-то древнее ядро.
Итак, у меня один диск, но вам команда покажет все устройства, если, конечно, они подпадают под маску sd*
Код:
box ~ # cat /sys/block/sd*/queue/scheduler
noop deadline [cfq]
видно, что в данный момент мне доступны три планировщика, причем, выбран cfq.
Сменим на deadline.
Код:
box ~ # echo deadline > /sys/block/sda/queue/scheduler
box ~ # cat /sys/block/sd*/queue/scheduler
noop [deadline] cfq
Собственно, все просто. Во многих статьях рекомендуется ставить noop для SSD, вот вы им не верьте :) По крайней мере попробовать другое точно стоит, ибо оба других про SSD знают и подстраиваются под него.

Собственно, о разнице между ними. Самый простой noop - FIFO для очереди. Процессы встают в очередь и по очереди получают запрошенный кусочек для чтения. CFQ и Deadline группируют ввод-вывод по процессам, причем, первый действует, исходя из приоритезации процессов, а второй - из выделенного времени. Сказать точно, какой именно планировщик подходит под именно ваши задачи никто не скажет. Берете и пробуете. Однозначный факт - влияние на ввод-вывод есть.

Из нюансов, планировщик НЕ занимается логическими чтениями. Т.е. речь идет исключительно об обмене с диском, тюнинг кеша и т.п., все это не сюда. Кроме того, в планировщиках есть параметры, например, для веб-сервера на Deadline я делал при загрузке системы
Код:
echo 1 > /sys/block/sda/queue/iosched/fifo_batch
что уменьшало размер пакета очереди и уменьшало время отклика на каждую операцию ввода-вывода. Но это, если уже будете копать дальше, для большинства юзеров достаточно выбрать сам планировщик.

Что касается noop, его использование имеет смысл на RAID с хорошими мозгами, чтобы эти самые мозги не путать.
10.09.2014 17:22
OlegON
 
Кстати, обратите внимание на загрузку Мониторинг сервера olegon.ru, первый график.
До вчерашнего дня работал noop, вчера работал CFQ, сегодня - Deadline. Разница, как говорится, налицо.
30.07.2023 12:02
OlegON
 
Неприятно вчера огорчил BFQ, поставил и на сервере, и на десктопе себе mq-deadline на всех носителях (NVMe у меня нет)
/etc/udev/rules.d/60-ioschedulers.rules

Код:
# HDD
ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="mq-deadline"

# SSD
ACTION=="add|change", KERNEL=="sd[a-z]*|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"

# NVMe SSD
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="none"
Часовой пояс GMT +3, время: 09:21.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.