Як я можу перемикатися між планувальниками 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, як описано в "Що таке PPA і як я ними користуюся" .

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


По продуктивності

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

У цьому сценарії, працюючи з використанням інтерактивного робочого столу та довготривалими фоновими завданнями CPU одночасно, CFS прагнув залишати одне ядро ​​в режимі очікування протягом тривалого часу. BFS виявляється набагато кращим у використанні всіх ядер на 100% для фонових завдань, одночасно забезпечуючи швидку відповідь на інтерактивні завдання на робочому столі.

Напевно, немає єдиного планувальника, який би працював оптимально при будь-якій можливій комбінації навантажень, але є випадки, коли BFS краще.


3

Наведене нижче працювало для мене на Precision Pangolin (Ubuntu 12.04) YMMV.

BFS є частиною pf-kernel

Найкращим способом встановити BFS в системі Ubuntu сьогодні (грудень 2013 р.), Здається, є встановлення pf-ядра , яке в основному є стандартним ядром, що застосовується безліч патчів продуктивності. Ці патчі включають:

  • BFS (Планувальник процесора дає низьку затримку на машинах з меншими 16 ядрами процесора)
  • BFQ (Планувальник вводу-виводу диска оптимізований для низької затримки при великих навантаженнях)
  • TuxOnIce (швидша сплячка)

Інструкції в Інтернеті

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

Встановлення pf-kernel

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

(Перейдіть до вищевказаного облікового запису Dropbox, щоб знайти 64 бітові та / або новіші версії цих пакетів.)

Згодом я дотримувався вказівок " Покращуйте ефективність робочого столу Linux та більше за допомогою pf-ядра " та виконую наступні команди:

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

Начебто все працює безперебійно, тому я перезавантажився.

Перевірка, чи працює

Швидкий огляд, схоже, вказує на те, що він працює, наприклад, команда uname -aповідомляє, що я використовую pf-kernel:

Linux siobhan 3.12.2-pf + # 6 SMP PREEMPT пн 2 грудня 19:09:52 EET 2013 i686 i686 i386 GNU / Linux

І cat /sys/block/sda/queue/schedulerпоказує, що BFQ зараз - це поточний дисковий планувальник (для sdaдиска):

noop deadline cfq [bfq] 

14 листопада - я встановив це pf-ядро на моєму точному Pangolin (Ubuntu 12.04.4 LTS) під керуванням Mythbuntu насамперед, щоб покращити введення-виведення з моєї файлової системи xfs для відеозаписів. Я збігав версії ядра (3.13), щоб забезпечити сумісність драйверів nvidia за замовчуванням. Це працювало без сучка. Kudos to zrjm ... ..!
holditsimpleengineer

1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.