Я є автором блогового поштового зв’язку, який пов’язує фанат 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
-realtime
в режимі реального часу, то для чого-rt
виступає? А що з-preempt
ядром? Я подякую gemue2010, він зробив досить гарну роботу, пояснивши це, але це все ще не пояснює все.