Навіщо вибирати ядро ​​з низькою затримкою над загальним чи в режимі реального часу?


105

Встановивши Ubuntu Studio 12.04, я виявив, що він використовує ядро ​​з низькою затримкою. Я шукав, чому і як повернутися до реального або загального. Але схоже, що ця частина Linux не була настільки висвітлена.

З: Чому вибирати ядро ​​з низькою затримкою над загальним чи в режимі реального часу?

PS: Я вже прочитав відповіді з цього питання та цього поста.


3
+1, тому що це може бути досить хорошим питанням, якщо всі натикаються. Я ВЖЕ не знаю різниці між ядрами з низькою затримкою, загальними та реальними часом. Якщо -realtimeв режимі реального часу, то для чого -rtвиступає? А що з -preemptядром? Я подякую gemue2010, він зробив досить гарну роботу, пояснивши це, але це все ще не пояснює все.
Hitechcomputergeek

Відповіді:


61

Ось кілька простих вказівок, які допоможуть вам зрозуміти, яке ядро ​​та в якому порядку слід перевірити на відповідність вашому випадку використання.

  • Якщо вам не потрібна низька затримка для вашої системи, тоді використовуйте -генеральне ядро.
  • Якщо вам потрібна система з низькою затримкою (наприклад, для запису аудіо), будь ласка, використовуйте ядро ​​-preempt як перший вибір. Це зменшує затримку, але не жертвує функціями енергозбереження. Він доступний лише для 64-бітних систем (їх також називають amd64).
  • Якщо ядро ​​-preempt не забезпечує достатньо низьку затримку для ваших потреб (або у вас 32-бітова система), ви повинні спробувати ядро ​​-lowlatency.
  • Якщо ядро ​​-lowlatency недостатньо, слід спробувати ядро ​​-rt
  • Якщо ядро ​​-rt недостатньо стабільне для вас, вам слід спробувати ядро ​​-realtime

Довідкове джерело Ubuntu

Отже, це залежить від того, що ви зробите зі студійним дистрибутивом. Для більшості користувачів, які потребують швидкого загального часу відгуку кінцевого користувача, буде просто чудово, а для інших, хто потребує професійного редагування відео, де навіть просте падіння кадру неприйнятне, потрібне ядро ​​в реальному часі.

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


1
Я вже читав попередню статтю, яку ви опублікували. По-друге, наскільки ці факти достовірні?
Starx

Добре тести, згадані там, говорять самі по собі. Якщо команда Ubuntu в першу чергу обрала затримку, це має бути причиною. Так ви хотіли дізнатись відмінності, тепер це зробите. Проблема вирішена ?
вентилятор ubuntu

5
Ні. Я не думаю, що проблема вирішена. Якщо ваша відповідь щось робить, це ще більше посилює мою цікавість.
Starx

9
Чи все-таки це все-таки вірно в 2015 році? В -preempt, -rtі -realtimeядра НЕ-більше не існує
naught101

51

Я є автором блогового поштового зв’язку, який пов’язує фанат ubuntu: http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/

Цей пост у блозі не містить жодного факту, це лише теорія . Насправді це працює, насправді: процесор «зупиняється» частіше, щоб побачити, чи є якісь процеси, які потребують негайної уваги. Це означає, що ці процеси будуть виконуватись перед іншими, тому ви не пропускатимете кадри при кодуванні або не маєте величезних затримок між клацанням миші та смертю ворога. Це не означає, що всі процеси закінчаться швидше: фактично процесор втрачає більшу частину свого часу, вирішуючи, який процес буде виконуватися далі, і робити переключення контексту. Таким чином, загальний час виконання більше, і тому ніхто не запускає попереднє ядро ​​на веб-сервері чи машинах баз даних. Але найкраще для ігрових серверів найкраще ядро ​​300 Гц (або навіть 1000 ГГц).

Але в наш час процесори мають багато ядер, тому, коли мало процесів, які потребують уваги, їх можна легко розподілити на іншому ядрі, а не чекати, коли ядро ​​зайняє його.

(stackexchange вимагає від мене посилань / особистого досвіду: я електронний інженер, кровожерний nogamgamer, що підтримує декілька ігор-серверів за адресою http://www.gamezoo.it ).

Отже, як правило, я б сказав: якщо ваш процесор є потужним високочастотним чотирьохядерним чотириядерним І, звичайно, ви не відкриваєте багато веб-сторінок під час кодування / декодування / ігор (так), ви можете просто спробуйте загальне ядро ​​(або i686, або amd64, якщо вони існують), і отримайте максимально можливу пропускну здатність (тобто, необроблене число, яке може зробити процесор). Якщо у вас виникли проблеми (вони справді повинні бути незначними) або ваш апарат трохи менш потужний, ніж вершина ринку, перейдіть на -преміт.

Якщо ви працюєте на машині низького класу, яка має лише одне або два ядра, то спробуйте -низькість. Ви також можете спробувати -realtime, але ви виявите, що це, як правило, блокує процеси, поки «реальні» не закінчать свою роботу. Я вважаю, що ядро ​​в реальному часі не є "ванільним", але застосовано патч CONFIG_PREEMPT_RT. Я думаю, що ядра в режимі реального часу призначені лише для тих, хто повинен створити єдиний додаток на вбудованих системах, тому звичайні користувачі настільних ПК не повинні мати реальних переваг, оскільки вони, як правило, одночасно запускають досить багато програм.

Нарешті, найбільш релевантні варіанти ядра, якщо ви хочете самостійно перекомпілювати ядро, щоб мати робочий стіл із низькою затримкою:

PREEMPT=y

і:

CONFIG_1000_HZ=y

Щоб додати деякі енергозбереження, ви можете перевірити це:

CONFIG_NO_HZ=y

Я помітив, що ви згадуєте про підтримку серверів, я намагаюся визначити найкраще ядро ​​для сервера, призначеного для джерела клапана (зокрема CSGO). Більшість CS-точок, які я знаходжу, пов'язані з goldsrc, якому потрібно ядро ​​1000 Гц З srcds, чи погана латентність? якщо це не має значення, я просто дотримуватимуся низької затримки, тому що я зараз маю (я виділяю ядра процесора для 128 серверів srcds-тиків, оскільки це все одно не має користі від багатопотокової передачі).
Вінсент Де Смет

Корисно знати свої поради, я повністю перейду на викуп. Я не поспішаю з цим, я хочу, щоб моє ядро ​​було як брудний пірат.
userDepth

4

З цитованого вище документа ( http://www.versalogic.com/mediacenter/whitepapers/wp_linux_rt.asp )

  1. м'яка система в режимі реального часу дасть знижену середню затримку, але не гарантує максимальний час відгуку.
  2. Важка система в режимі реального часу завжди відповідає бажаним строкам (100 відсотків), навіть при найгіршому навантаженні системи.
  3. За словами Ягмура [4], "в режимі реального часу розглядаються гарантії, а не швидкість".

У статті йдеться про те, що найважливіше властивість ядра в режимі реального часу або обмежене часом є найважливішим властивістю, тому колись вони затримують не критичну активність, яка призводить до затримки, але для низької затримки або іншого м'якого ядра в реальному часі намагаються зменшити загальну затримку, яка допомагає в більшості випадків. Завдяки зниженій затримці система здається швидкою. Прочитайте статтю уважно.


Це правда, але нам потрібно знати, який варіант ядра відповідає тій жорсткості системи в режимі реального часу.
Мелебій

0

У мене цей старий ноутбук з подвійним AMD A6-4400M на частоті 1600 МГц, який я мало використовую, коли виходжу з офісу, в основному для читання електронної пошти та перегляду випадкових веб-сайтів. З оновленнями програмного забезпечення було щось, можливо, пов'язане з цим, що робить його невідповідним. Щось на зразок набору десятка символів, не бачивши першого. Часто віджет запитує, чи слід змусити вийти з процесу.

Після sudo apt-get install linux-lowlatencyта перезавантаження він став плавним та чуйним. (ун-р 5,0,0-20-низький рівень затримки.) Чудово, я мав переключитися років тому. Дозвольте наголосити на відповіді семи: якщо ви не хочете вичавити максимум із сервера хрускоту чисел, перейдіть на -препарат !

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