Как я могу переключаться между планировщиками CFS и BFS?

17

В связи с вопросом о

задан j-g-faustus 03.03.2011 в 18:04
источник

4 ответа

7

Вам придется загружать, патч и компилировать собственное ядро, потому что BFS в настоящее время не является частью ядра mainline. Ядро mainline содержит только один планировщик и не предназначено для того, чтобы иметь несколько планировщиков в одной и той же базе данных или даже переключаемые планировщики «на лету» (это даже то, что можно было бы сделать). Это было бы просто слишком сложно и не стоило усилий.

Итак, чтобы получить BFS в вашей системе:

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

Преимущество использования BFS по сравнению с CFS очень мало, особенно с более новыми версиями ядра. Имейте в виду, что CFS постоянно совершенствуется.     

ответ дан Cedric 06.03.2011 в 16:16
источник
9

Изучив это немного, похоже, для Linux есть только два планировщика: CFS и BFS .

Самый простой способ установить BFS в Ubuntu 10.10 - это патч PPA :

sudo add-apt-repository ppa:chogydan/ppa 
sudo apt-get update
sudo apt-get install linux-image-generic-ck linux-headers-generic-ck

Вы также можете установить исправление, используя программный центр Ubuntu, как описано в " Что такое PPAs и как их использовать ".

Патч устанавливает новое (исправленное) ядро, которое будет отображаться в меню GRUB при загрузке с суффиксом "-ck". Переключение между планировщиками путем перезагрузки и выбор соответствующего ядра в меню загрузки.

В режиме производительности

В моем случае запустите Folding @ Home в фоновом режиме на настольном ПК (восемь потоков F @ H на восьми ядрах на Intel i7 2600K), BFS значительно лучше: ответ рабочего стола более быстрый (не большая разница, но определенно заметная), в то время как фоновое приложение F @ H на 20-25% быстрее.

В этом случае, имея дело с интерактивным использованием настольных компьютеров и многолетними задачами с центральным процессором одновременно, CFS, как правило, оставлял один основной простоя в течение длительного времени за раз. BFS выглядит намного лучше при использовании всех ядер на 100% для фоновых задач, сохраняя при этом быстрый отклик для задач интерактивного рабочего стола.

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

    
ответ дан j-g-faustus 19.03.2011 в 09:47
3

Ниже я работал для меня на Precise Pangolin (Ubuntu 12.04) YMMV.

BFS является частью pf-kernel

Лучший способ установить BFS в системе Ubuntu сегодня (декабрь 2013 года) - это установить pf-kernel , что в основном стандартное ядро ​​с множеством патчей производительности. Эти патчи включают в себя:

  • BFS (планировщик процессора обеспечивает низкую задержку на машинах с процессором менее 16 ядер)
  • BFQ (планировщик дисков I / O оптимизирован для низкой задержки при больших нагрузках)
  • TuxOnIce (более быстрая спячка)

Инструкции в Интернете

Я нашел несколько инструкций о том, как установить пакеты pf-kernel для Ubuntu в статье « Повысить производительность рабочего стола Linux и многое другое с помощью pf-kernel ". Однако эти инструкции несколько устарели, поскольку это указывает на несуществующий источник для соответствующих пакетов Debian. Но я нашел поток « pf-kernel для Ubuntu » (на форумах pk-kernel ) в котором упоминается, что пакеты Debian можно загрузить из учетной записи пользователя Dropbox для пользователя big_bum .

Установка pf-kernel

Машина, на которой я установлена, - это старый 32-разрядный ноутбук, поэтому я начал с загрузки необходимых пакетов linux-headers и linux-image в каталог на моем компьютере с именем ~/kernel .

  • Linux-Headers-3.12.2-PF + _3.12.2-пф + -10.00.Custom_i386.deb
  • Linux-образ-3.12.2-пф + _3.12.2-пф + -10.00.Custom_i386.deb

(Перейдите к вышеупомянутой учетной записи Dropbox , чтобы найти 64-битные и / или более новые версии этих пакетов.)

После этого я выполнил инструкции в разделе Повысьте производительность рабочего стола Linux и многое другое с помощью pf-kernel "и выполнил следующие команды:

$ cd ~/kernel
$ sudo dpkg -i *.deb

Все работает нормально, поэтому я перезагрузился.

Проверка, если он работает

Быстрый осмотр показывает, что он работает, например. команда uname -a сообщает, что я использую pf-kernel :

  

Linux siobhan 3.12.2-pf + # 6 SMP PREEMPT Mon Dec 2 19:09:52 EET 2013 i686 i686 i386 GNU / Linux

И cat /sys/block/sda/queue/scheduler показывает, что BFQ теперь является текущим планировщиком дисков (для диска sda ):

noop deadline cfq [bfq] 
    
ответ дан zrajm 19.12.2013 в 03:16
1

Запустите и установите новое ядро ​​с BFS. Вы должны использовать ядра sepatare, нет возможности использовать оба изображения одного и того же ядра (особенно для их быстрого перемещения на лету).

    
ответ дан user11924 06.03.2011 в 15:53