В связи с вопросом о том, что лучше, планировщик CFS или BFS :
Где я могу найти список доступных планировщиков?
И как мне переключаться между ними?
В связи с вопросом о том, что лучше, планировщик CFS или BFS :
Где я могу найти список доступных планировщиков?
И как мне переключаться между ними?
Ответы:
Вам придется скачивать, исправлять и компилировать собственное ядро, потому что BFS в настоящее время не является частью основного ядра. Основное ядро содержит только один планировщик и не предполагает наличия нескольких планировщиков в одной кодовой базе или даже переключаемых планировщиков «на лету» (это даже то, что можно было бы сделать). Это было бы слишком сложно и не стоило бы усилий.
Итак, чтобы получить BFS в вашей системе:
Преимущество запуска BFS по сравнению с CFS очень мало, особенно с новыми версиями ядра. Имейте в виду, что CFS постоянно совершенствуется.
Изучив это немного, кажется, есть только два планировщика для 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 лучше.
Приведенное ниже работает для меня на Precise Pangolin (Ubuntu 12.04) YMMV, хотя.
pf-kernel
Наилучший способ установить BFS в системе Ubuntu сегодня (декабрь 2013 г.) - это установить pf-kernel , которое в основном является стандартным ядром с кучей исправлений производительности. Эти патчи включают в себя:
Некоторые инструкции о том, как установить 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]
Патч и установить новое ядро с BFS. Вы должны использовать отдельные ядра, нет возможности использовать оба в одном и том же образе ядра (особенно для их мгновенного переключения)