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

86

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

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

PS: Я уже прочитал ответы от этот и .

    
задан Starx 28.04.2012 в 05:09
источник

4 ответа

51
  

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

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

Ссылка

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

FREEDOM SPEECH, попробуйте прочитать эту ссылку: Ссылка

    
ответ дан ubuntu fan 28.04.2012 в 05:21
42

Я автор блога, связанного с поклонником ubuntu: Ссылка

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

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

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

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

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

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

PREEMPT=y

и

CONFIG_1000_HZ=y

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

CONFIG_NO_HZ=y
    
ответ дан seven 24.10.2012 в 22:27
5

BTW: preemt-, lowlatency или rt kernel не заставят вашу систему работать быстрее. Они немного медленнее , чем общее ядро.

    
ответ дан gemue2010 28.04.2012 в 05:53
2

Из приведенного выше документа ( Ссылка )

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

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

    
ответ дан Mayank Suman 17.08.2014 в 07:34