Сайт | Скачать | Видео | Wiki

Автор Тема: Ядро. Планировщик ввода / вывода BFQ  (Прочитано 18903 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33967
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #15 : 26 Март 2018, 10:46:24 »
будет работать mq-deadline
Это сильно на чем-то отразится?
то что выставлено в конфиге ядра в качестве дефолтного
А что у тебя выставлено и в каком параметре?

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #16 : 26 Март 2018, 10:57:50 »
Это сильно на чем-то отразится?
хз


А что у тебя выставлено и в каком параметре?
CONFIG_DEFAULT_IOSHED="cfq" например, но у меня без параметров на mq-deadline  скидывает, cfq в списке scheduler вобще нету
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Онлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33967
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5320
  • Репутация: +139/-1
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #18 : 29 Март 2018, 18:31:33 »
    будет работать mq-deadline

Это сильно на чем-то отразится?

Код
uname -a
Linux pra-roll 4.15.4-pf #1 SMP PREEMPT Tue Mar 13 14:51:06 MSK 2018 x86_64 GNU/Linux

По умолчанию:
Код
 cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none

Может будет интересна статья с тестами:
blk-mq и планировщики ввода-вывода

Говоря в общих чертах: если приложение использует ioprio для приоритизации конкретных процессов,
то выбор планировщика в сторону CFQ/BFQ будет оправдан.
Но всегда стоит исходить из типа нагрузки и состава всей дисковой подсистемы.
Для некоторых решений разработчики дают вполне конкретные рекомендации: например,
для clickhouse рекомендуют использовать CFQ для HDD и noop для SSD дисков.
Если же от дисков требуется большая пропускная способность,
возможность выполнять больше операций ввода-вывода и средняя задержка не важна,
тогда стоит смотреть в сторону BFQ/CFQ, а для ssd-дисков также noop и none.

Если же необходимо снижение задержки и каждая операция в отдельности,
а в особенности — операция чтения, должна выполняться максимально быстро,
то, помимо использования ssd, стоит использовать специально предназначенный для этого планировщик deadline,
или один из новых — mq-deadline, kyber.


У меня сложилось впечатление что для PRA ближе kyber чем BFQ (имхо).




« Последнее редактирование: 29 Март 2018, 18:34:49 от krasnyh »

Онлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33967
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #19 : 30 Март 2018, 09:19:55 »
удобнее через параметры ядра (добавить scsi_mod.use_blk_mq=1)
А так?

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5320
  • Репутация: +139/-1
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #20 : 30 Март 2018, 21:44:30 »
По умолчанию:
Код
live@pra-roll:~$ cat /sys/module/scsi_mod/parameters/use_blk_mq
Y

Онлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33967
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #21 : 31 Март 2018, 09:31:37 »
001-kernel-bfq*.pfs НУЖЕН
Да. Все что я писал выше - проверялось на виртуалке
На желазе без udev bfq
Код
# sudo cat /sys/block/sda/queue/scheduler
mq-deadline kyber [bfq] none
получить не удалось
Почему бы не добавить этот udev в 089? Какие-то побочные эффекты возможны?

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5320
  • Репутация: +139/-1
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #22 : 26 Апрель 2018, 16:51:04 »
 Поставил ядро 000-kernel-4.16.2-pf2_64
По старой памяти скачал и 001-kernel4.12-bfq.
Код
cat /sys/block/sda/queue/scheduler
mq-deadline kyber [bfq] none

 Но оказалось 001-kernel4.12-bfq больше не нужен.
В 001-prar-c-180101-sf06 уже включен bfq.
Код
001-prar-c-180101-sf06.pfs/usr/lib/udev/rules.d$cat 60-bfq.rules
# enable BFQ in kernel 4.12
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="bfq"

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5320
  • Репутация: +139/-1
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #23 : 26 Апрель 2018, 17:30:36 »
 В сети попалась такая  конструкция
Код
cat /lib/udev/rules.d/60-scheduler.rules
# установка планировщика для SSD
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="kyber"

# установка планировщика bfq для HDD
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"

# установка планировщика для flash-накопителей
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{removable}=="1", ATTR{queue/scheduler}="mq-deadline"
Как это работает у меня:
Код
live@pra-roll:~$ inxi -D
Drives:    ID-1: /dev/sda model: Hitachi_HTS54321 size: 120.0GB
           ID-2: USB /dev/sdb model: USB_Flash_Drive size: 7.9GB

Код
live@pra-roll:~$ cat /sys/block/sd[a-z]/queue/scheduler
mq-deadline kyber [bfq] none
[mq-deadline] kyber bfq none
Есть ли резон в таком использовании планировщиков, не знаю.

Онлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33967
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #24 : 26 Апрель 2018, 17:58:24 »
Есть ли резон в таком использовании планировщиков
Раз люди заморачивались - наверное есть, но скорее всего на глаз незаметно
Нужны тесты

Онлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33967
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #25 : 27 Апрель 2018, 09:23:07 »
хорошее правило, мне нра
Нравится теоретически или пробовал и есть впечатления? Если так - в исо?

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #26 : 27 Апрель 2018, 09:41:52 »
я не умею тестировать планировщики
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Онлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33967
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #27 : 27 Апрель 2018, 09:45:06 »
Чем тогда понравилось правило?

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5320
  • Репутация: +139/-1
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #28 : 16 Сентябрь 2020, 13:49:40 »
Еще в 2018 обратил внимание на включение ядерного планировщика PDS-mq в pf-kernel. А тут и тесты подоспели.
1.У меня, с ядром от Pro
Код
$ uname -r
4.20.15-pf7
dmesg | grep -i scheduler
[    0.201199] pds: PDS-mq CPU Scheduler 0.99m by Alfred Chen.
[    0.201256] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    2.429686] io scheduler noop registered
[    2.429709] io scheduler cfq registered
[    2.429710] io scheduler mq-deadline registered
[    2.429711] io scheduler kyber registered
[    2.429731] io scheduler bfq registered (default)
2. prar2008-x86_64-03, стандартное ядро (MANJARO), первое DE
(скрин)


p.s. Оговорюсь, выводы никакие не делаю.

Онлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33967
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Ядро. Планировщик ввода / вывода BFQ
« Ответ #29 : 16 Сентябрь 2020, 14:08:50 »
По ощущениям есть ускорение? Не глядя на цифры "в попугаях?"