Зачем выбирать ядро ​​с малой задержкой вместо обычного или реального времени?

После установки Ubuntu Studio 12.04 я обнаружил, что она использует ядро ​​с низкой задержкой. Я искал, почему и как изменить обратно на реальный или общий. Но похоже, что эта часть Linux не так много освещена.

Q: Почему ядро ​​с малой задержкой выбирает ядро ​​с малой задержкой вместо обычного или реального времени?

PS: я уже прочитал ответы из этого [ 110] вопрос и этот пост.

106
задан 13 April 2017 в 15:24

5 ответов

Из документа, приведенного выше ( http://www.versalogic.com/mediacenter/whitepapers/wp_linux_rt.asp )

  1. мягкая система реального времени даст уменьшенная средняя задержка, но не гарантированное максимальное время ответа.
  2. Жесткая система в режиме реального времени всегда соблюдает требуемые сроки (100 процентов), даже при нагрузке на систему в худшем случае.
  3. Согласно Ягмуру [4], «в режиме реального времени имеют дело с гарантиями, а не с необработанной скоростью».

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

0
ответ дан 13 April 2017 в 15:24

Кстати: preempt-, low latency или rt kernel не сделают вашу систему быстрее. Они немного медленнее , чем общее ядро.

0
ответ дан 13 April 2017 в 15:24

Это несколько простых рекомендаций, которые помогут вам понять, какое ядро ​​и в каком порядке вам следует протестировать в соответствии с вашим вариантом использования.

  • Если вам не требуется низкая задержка для вашей системы, используйте ядро ​​-generic.
  • Если вам нужна система с низкой задержкой (например, для записи звука), пожалуйста, используйте ядро ​​-preempt в качестве первого выбора. Это уменьшает задержку, но не жертвует функциями энергосбережения. Он доступен только для 64-битных систем (также называемых amd64).
  • Если ядро ​​-preempt не обеспечивает достаточно низкой задержки для ваших нужд (или у вас 32-битная система), вам следует попробовать ядро ​​-lowlatency.
  • Если ядра -lowlatency недостаточно, вам следует попробовать ядро ​​-rt
  • Если ядро ​​-rt недостаточно стабильно для вас, вам следует попробовать ядро ​​-realtime
  • [ 1111]

    https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel

    Я полагаю, это зависит от того, что вы будете делать со своим студийным дистрибутивом. Для некоторых пользователей generic просто подойдет, для других - нет.

    РЕЧЬ СВОБОДЫ, попробуйте прочитать эту ссылку: http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/

0
ответ дан 13 April 2017 в 15:24

Я являюсь автором поста, на который ссылается фанат Ubuntu: http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/

[ 116] Это сообщение в блоге не представляет никакого факта, это всего лишь теория . На самом деле, так оно и есть: процессор «останавливается» чаще, чтобы увидеть, есть ли какие-то процессы, требующие немедленного внимания. Это означает, что эти процессы будут выполняться раньше других, поэтому вы не пропустите кадры при кодировании или будете иметь огромные задержки между щелчками мыши и смертью противника. Это не означает, что все процессы завершатся раньше: на самом деле процессор теряет большую часть своего времени, решая, какой процесс будет выполняться дальше, и переключая контекст. Таким образом, общее время выполнения больше, и поэтому никто не запускает вытесняемое ядро ​​на машинах веб-сервера или базы данных. Но лучше всего для игровых серверов лучше использовать ядро ​​с частотой 300 Гц (или даже 1000 Гц).

Но в настоящее время процессоры имеют много ядер, поэтому, когда мало процессов, требующих внимания, их можно легко разместить на другом ядре, а не ждать, пока ядро ​​его возьмёт.

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

Итак, как правило, я бы сказал: если ваш процессор представляет собой мощный высокочастотный четырехъядерный процессор, работающий с большими числами, и вы обычно не открываете тонны веб-страниц при кодировании / декодировании / играх (да) Вы можете просто попробовать универсальное (или i686, или amd64, если они существуют) ядро ​​и иметь максимально возможную пропускную способность (т. е. с обработкой необработанных чисел процессором способен). Если у вас возникли проблемы (они действительно должны быть незначительными) или ваша машина немного менее мощная, чем вершина рынка, выберите вариант -preempt.

Если вы находитесь на младшей машине, которая имеет только одно или два ядра, попробуйте -lowlatency. Вы также можете попробовать -realtime, но вы обнаружите, что он имеет тенденцию блокировать процессы, пока те, которые работают в режиме реального времени, не закончили свою работу. Я считаю, что ядро ​​реального времени не "ванильное", но имеет патч CONFIG_PREEMPT_RT. Я думаю, что ядра реального времени предназначены только для тех, кому нужно создавать одно приложение на встраиваемых системах, поэтому обычные пользователи настольных компьютеров не должны иметь реальных преимуществ, потому что они обычно запускают достаточное количество приложений одновременно.

И наконец, наиболее подходящие параметры ядра, если вы хотите самостоятельно перекомпилировать ядро, чтобы иметь рабочий стол с низкой задержкой:

PREEMPT=y

и:

CONFIG_1000_HZ=y

Чтобы добавить некоторые Экономия энергии вы можете проверить это:

CONFIG_NO_HZ=y
0
ответ дан 13 April 2017 в 15:24

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

После sudo apt-get install linux-lowlatency и перезагрузка, это стало гладким и быстро реагирующим. (uname-r 5.0.0-20-lowlatency.) Замечательный, я должен был переключиться несколько лет назад. Позвольте мне подчеркнуть ответ Seven: если Вы не хотите сжать макс. из сервера перемалывания чисел, пойдите для - вытесняют!

1
ответ дан 22 November 2019 в 23:00

Другие вопросы по тегам:

Похожие вопросы: