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

Ответы:

7

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

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

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

Седрик
источник
Я скомпилировал ядро ​​4.0.5 с патчем BFS, но планировщик не указан. BFS был включен в make menuconfig. Я не понимаю почему.
Шантану
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 Software Center, как описано в разделе «Что такое PPA и как их использовать» .

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


По производительности

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

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

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

JG-Фауст
источник
3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Linux siobhan 3.12.2-pf + # 6 ПРЕДСТАВЛЕНИЕ SMP Пн 2 декабря 19:09:52 EET 2013 i686 i686 i386 GNU / Linux

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

noop deadline cfq [bfq] 
zrajm
источник
Ноябрь 14 - я установил это ядро ​​pf на свой Precise Pangolin (Ubuntu 12.04.4 LTS), на котором работает Mythbuntu, в первую очередь, чтобы получить лучший ввод / вывод из моей файловой системы xfs для видеозаписей. Я соответствовал версиям ядра (3.13), чтобы обеспечить совместимость драйверов nvidia по умолчанию. Это работало безотказно. Слава к zrjm ... ..!
keepitsimpleengineer
1

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


источник