The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Для Linux ядра разработаны новые планировщики ввода/вывода - BFQ, YFQ и SCAN-EDF

16.04.2008 09:39

Fabio Checconi представил в списке рассылки разработчиков Linux ядра прототип нового, основанного на CFQ, планировщика ввода/вывода - Budget Fair Queueing (BFQ), который отличается более высокой предсказуемостью и справедливостью при распределении ресурсов. Вместо оперирования отрезками времени, в BFQ производится планирование на уровне доступа к блокам секторов на диске.

Кроме BFQ, Fabio Checconi разработал еще два планировщика ввода/вывода: YFQ, похожий на BFQ, но с иным подходом к обработки очереди, и SCAN-EDF - real-time планировщик обращений к диску, работающий на базе идеи вычисления приоритета в зависимости от указанного времени завершения операции.

Что касается производительности, то представлены результаты серии экспериментов ( bfq, cfq) и аналитический отчет на их основе. Наглядно результаты сравнения BFQ и CFQ можно оценить на графике.

Некоторые результаты:

  • Пропускная способность при одновременном чтении двух файлов размером 128Мб, размещенным в разных областях диска:
    • BFQ - 9.95 и 9.81Мб/сек
    • CFQ - 11.9 и 8.61Мб/сек
    • SCAN-EDF - 10.72 и 9.62Мб/сек
    • YFQ - 5.44 и 5.44 Мб/сек.
  • Пропускная способность при одновременном чтении пяти файлов размером 128Мб, размещенным в разных областях диска:
    • BFQ - 4.29, 4.30, 4.30, 4.29, 4.31 Мб/сек
    • CFQ - 5.24, 4.91, 4.66, 4.37, 4.01 Мб/сек
    • SCAN-EDF - 2.17, 2.17, 2.17, 2.17, 2.19 Мб/сек
    • YFQ - 1.39, 1.39, 1.39, 1.39, 1.39 Мб/сек.
  • Максимальное число видеопотоков отдаваемых с локального диска через VLC сервер, которые удается без задержек отобразить на клиенских машинах с буферизацией 1 сек.:
    • BFQ - 24, 23, 18 (в зависимости от объема блока секторов)
    • CFQ - 14
    • SCAN-EDF - 12
    • YFQ - 19


  1. Главная ссылка к новости (http://kerneltrap.org/Linux/Bu...)
  2. OpenNews: Автотюнинг планировщиков задач и ввода/вывода в Linux
  3. OpenNews: Планировщики ввода/вывода в Linux
  4. Выбор планировщика ввода/вывода в Red Hat® Enterprise Linux® 4 и ядре версии 2.6
  5. CFQ IO Schedule или как уменьшить тормоза при интенсивной работе с диском
  6. Приоритезация ввода/вывода в Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/15332-CFQ
Ключевые слова: CFQ, BFQ, sheduler, disk, linux, kernel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (21) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:23, 16/04/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а в FreeBSD кажется делали планировщик, который учитывает кеш процессоров
     
     
  • 2.2, Serge (??), 10:36, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >а в FreeBSD кажется делали планировщик, который учитывает кеш процессоров

    Планировщик, учитывающий кеш процессора - это планировщик задач (делит ограниченное процессорное время между всеми выполняющимися процессами), тут учитывать кеш - самое оно.
    Планировщик ввода-вывода делит между процессами ограниченную пропускную способность системы ввода-вывода. Для него учитывать кеш процессора, IMHO, не нужно.

     
     
  • 3.3, mv (??), 12:35, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Представляется не очень полезным, т.к. для SAN/iSCSI оно бесполезно в принципе, а на новых десктопах почте везде стоят винты с NCQ. Разве что, если NCQ глючное и ядро его заблеклистило, то тогда i/o scheduler нужен.


     
     
  • 4.4, Michael Shigorin (ok), 13:19, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    С каких пор NCQ (если б оно ещё работало толком, когда типа работает) или iSCSI умеет разбирать относительный приоритет I/O, который можно назначить процессам?

    Вы часом с элеватором не перепутали?  Так тот тоже не лишний, особенно при неглубокой очереди.

     
  • 4.15, mma (?), 20:19, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    винты то с ncq стоят, вот только единичные контролеры в стандартных мамках его поддерживают, как в прочем и другие механизмы планирования.
     
  • 2.16, Luke (??), 21:57, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >а в FreeBSD кажется делали планировщик, который учитывает кеш процессоров

    Кто-то явно путает планировщик I\O и планировщик процессора, но разве ж это важно когда кой-кто такой крЮтой бздун?

     

  • 1.5, Аноним (5), 13:47, 16/04/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Теперь линукс не будет тормозить при высокой дисковой активности?
     
     
  • 2.6, fresco (??), 13:53, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    вроде и раньше не тормозил
     
     
  • 3.7, Кирилл (??), 15:18, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Это от того, что вы его не нагружали.
     
     
  • 4.8, RNZ (ok), 15:34, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Это смотря что считать нагрузкой и как ядро сконфигурировано.
     
     
  • 5.9, otaku (ok), 16:42, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    а как надо ядро конфигурировать?
     
     
  • 6.12, RNZ (ok), 18:26, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >а как надо ядро конфигурировать?

    Читай /usr/src/linux/Documentation/
    Например /usr/src/linux/Documentation/sched-*

     
  • 4.19, Michael Shigorin (ok), 01:14, 17/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Это от того, что вы его не нагружали.

    Нагружаем.

     

  • 1.10, _Nick_ (??), 17:07, 16/04/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    обалденно!
    давно ждал контроля I/O на уровне скоростей.
     
     
  • 2.11, pavlinux (ok), 17:54, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > планирование на уровне доступа к блокам секторов на диске.

    Это ещё не весь I/O


     

  • 1.13, КтулхЪ (?), 19:00, 16/04/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А этот новый планировщик заменит старый, и опять появится несовместимость старого софта с этим новым ядром?
     
     
  • 2.14, MiG (?), 19:05, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Для приложений планировщик прозрачен. К тому же всегда можно выбрать нужный при загрузке ядра, если ядро было скомпилено с несколькими.
     
     
  • 3.20, Michael Shigorin (ok), 01:16, 17/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Для приложений планировщик прозрачен. К тому же всегда можно выбрать нужный при
    >загрузке ядра, если ядро было скомпилено с несколькими.

    Мало того -- ещё и для каждого диска свой можно указать, см. /sys/block/*/queue/scheduler

     
  • 2.17, Luke (??), 22:00, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >А этот новый планировщик заменит старый, и опять появится несовместимость старого софта
    >с этим новым ядром?

    Мало какому софту надо вообще знать о том что такое планировщик I\O.

     

  • 1.18, Аноним (5), 23:25, 16/04/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто-нибудь уже посмотрел производительность BFQ with Budget>=4096 на реальных приложениях (apache/mysql)?
     
  • 1.21, pavlinux (ok), 03:00, 17/04/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1. SCAN-EDF
    > идеи вычисления приоритета в зависимости от
    > указанного времени завершения операции.

    А если время вычисления, завершения операции,
    которое надо указать, будет огромным или не завершится?

    2. BFQ
    > Вместо оперирования отрезками времени, в BFQ
    > производится планирование на уровне доступа к
    > блокам секторов на диске.

    При большом кол-ве операций, параметр на основании
    которого рассчитывается приоритет, тупо превратится
    во временную константу.
    И будет линейно зависеть от скорости конкретного диска.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру