Pourquoi choisir un noyau à faible latence par rapport à un noyau générique ou temps réel?

92

Après avoir installé Ubuntu Studio 12.04, j'ai constaté qu'il utilisait un noyau à faible latence. J'ai cherché pourquoi et comment revenir à un temps réel ou générique. Mais on dirait que cette partie de Linux n’a pas été tellement couverte.

Q: Pourquoi choisir un noyau à faible latence par rapport à un noyau générique ou temps réel?

PS: J'ai déjà lu les réponses de cette question et cet article .

    
posée Starx 28.04.2012 - 05:09
la source

4 réponses

54
  

Voici quelques directives simples pour vous aider à comprendre   noyau, et dans quel ordre, vous devriez tester pour s'adapter à votre cas d'utilisation.

     
  • Si vous n’avez pas besoin d’une faible latence pour votre système, veuillez utiliser le noyau -generic.
  •   
  • Si vous avez besoin d’un système à faible latence (par exemple pour enregistrer de l’audio), utilisez le noyau -preempt comme premier choix. Cela réduit la latence   mais ne sacrifie pas les fonctionnalités d'économie d'énergie. Il est disponible uniquement pour   Systèmes 64 bits (également appelés amd64).
  •   
  • Si le noyau -preempt ne fournit pas suffisamment de latence pour vos besoins (ou si vous avez un système 32 bits), alors vous devriez essayer le   -Le noyau à basse fréquence.
  •   
  • Si le noyau -lowlatency ne suffit pas, alors vous devriez essayer le noyau -rt
  •   
  • Si le noyau -rt n'est pas assez stable pour vous, alors vous devriez essayer le noyau -realtime
  •   

lien

Je suppose que cela dépend de ce que vous ferez avec votre studio de distribution. Pour certains utilisateurs, les génériques feront tout simplement l'affaire, d'autres pas.

FREEDOM SPEECH, essayez de lire ce lien: lien

    
réponse donnée ubuntu fan 28.04.2012 - 05:21
la source
44

Je suis l'auteur de l'article de blog lié par le fan d'ubuntu: lien

Cet article ne présente aucun fait, c’est seulement la théorie . C'est comme ça que ça marche, en fait: le processeur "s'arrête" plus fréquemment pour voir si certains processus nécessitent une attention immédiate. Cela signifie que ces processus seront exécutés avant les autres, de sorte que vous ne passerez pas inaperçus lors du codage ou que les délais d'attente entre les clics de souris et les décès d'ennemis seront énormes. Cela ne signifie pas que tous les processus se termineront plus tôt: en fait, le processeur perd une plus grande partie de son temps à décider quel processus sera exécuté ensuite, et à effectuer le changement de contexte. Le temps d'exécution total est donc plus long et c'est pourquoi personne ne lance un noyau préemptible sur les machines de serveur Web ou de base de données. Mais un noyau préemptible de 300Hz (ou même 1000Hz) est le meilleur pour les serveurs de jeux.

Mais, de nos jours, les processeurs ont de nombreux cœurs. Par conséquent, lorsque peu de processus nécessitent une attention particulière, ils peuvent facilement être alloués sur un autre noyau plutôt que d’attendre que le cœur le prenne.

(stackexchange me demande des références / une expérience personnelle: je suis un ingénieur en électronique, noobgamer assoiffé de sang qui conserve plusieurs serveurs de jeux sur lien ).

Donc, en règle générale, je dirais: si votre processeur est un puissant quad-core haute fréquence et que vous n’ouvrez généralement pas des tonnes de pages Web lors de l’encodage / décodage / jeu (hein) , vous pouvez simplement essayer le noyau générique (ou i686 ou amd64 s'il existe) et avoir le débit le plus élevé possible (c.-à-d. le traitement brut du processeur). Si vous rencontrez des problèmes (ils doivent vraiment être mineurs) ou si votre ordinateur est légèrement moins puissant que le haut du marché, optez pour le pré-test.

Si vous êtes sur un ordinateur bas de gamme qui ne possède qu’un ou deux cœurs, essayez la fonction -lowlatency. Vous pouvez également essayer le mode -realtime, mais vous constaterez qu'il a tendance à bloquer les processus jusqu'à ce que ceux en "temps réel" aient terminé leur travail. Je crois que le noyau temps réel n’est pas le noyau "vanilla", mais que le patch CONFIG_PREEMPT_RT est appliqué. Je pense que les noyaux en temps réel sont uniquement destinés à ceux qui doivent créer une seule application sur les systèmes embarqués, de sorte que les utilisateurs de bureau habituels ne devraient pas avoir d’avantages réels, car ils exécutent généralement un grand nombre d’applications simultanément.

Enfin, les options de noyau les plus pertinentes pour recompiler votre noyau vous-même afin d’avoir un bureau à faible latence sont:

PREEMPT=y

et:

CONFIG_1000_HZ=y

Pour ajouter de l’autonomie, vous pouvez vérifier celle-ci:

CONFIG_NO_HZ=y
    
réponse donnée seven 24.10.2012 - 22:27
la source
6

BTW: preemt-, lowlatency ou le noyau rt ne rendra pas votre système plus rapide. Ils sont légèrement plus lents que le noyau générique.

    
réponse donnée gemue2010 28.04.2012 - 05:53
la source
2

D'après le document cité ci-dessus ( lien )

  1. un système temps réel souple donnera une latence moyenne réduite mais pas un temps de réponse maximal garanti.
  2. Un système dur en temps réel respecte les délais souhaités à tout moment (100%), même dans les pires conditions du système.
  3. Selon Yaghmour [4], "le temps réel traite des garanties, pas de la vitesse brute."

L’article dit que pour le noyau dur temps réel, la réactivité sans délai ou le temps limité est la propriété la plus importante. En raison de la latence réduite, le système semble être rapide. Lisez l'article attentivement.

    
réponse donnée Mayank Suman 17.08.2014 - 07:34
la source

Lire d'autres questions sur les étiquettes