GNU/Linux >> Tutoriels Linux >  >> Linux

Travailler avec le noyau en temps réel pour Red Hat Enterprise Linux

La capacité du noyau en temps réel existe depuis plus d'une décennie dans l'écosystème open source. De même, la prise en charge de Red Hat Enterprise Linux (RHEL) pour le noyau en temps réel est disponible depuis plusieurs années. Pourtant, de nombreux administrateurs système interprètent mal ses concepts de base et son comportement opérationnel réel. Dans cet article, je décris certaines de ses principales fonctionnalités, les différences par rapport au noyau standard et les étapes d'installation rapide.

Initialement, Red Hat a lancé un produit appelé "Red Hat Enterprise MRG", où MRG signifiait Messaging, Real-time et Grid. MRG 2 était basé sur les versions RHEL 5 et RHEL 6, tandis que MRG 3 était entièrement basé sur RHEL 6. À partir de RHEL 7, le produit MRG est devenu obsolète et "RHEL for Real-Time" a été introduit en tant que produit distinct.

Qu'est-ce que le noyau temps réel ?

Un noyau temps réel n'est pas nécessairement supérieur ou meilleur qu'un noyau standard. Au lieu de cela, il répond à différentes exigences commerciales ou système. Il s'agit d'un noyau optimisé conçu pour maintenir une faible latence, un temps de réponse constant et un déterminisme. À titre de comparaison, un noyau RHEL standard se concentre sur les opérations axées sur le débit et la planification équitable des tâches. Le noyau temps réel est également appelé kernel-rt ou preempt-rt .

Le moyen le plus simple d'identifier un noyau temps réel est d'exécuter le uname -r commande sur le terminal, puis recherchez le rt mot-clé dans la version du noyau. Si rt est manquant, le système utilise le noyau standard.

La sortie suivante est un exemple :

#uname -r
3.10.0-1127.10.1.rt56.1106.el7

Quelques éléments importants de kernel-rt mécanismes comprennent :

  • La priorité d'une tâche est vérifiée (1-99) en cas de forte charge.
  • Les tâches de haute priorité (99) ont la priorité pour l'exécution du processeur.
  • N'utilise pas la politique de planification complètement équitable (CFS).
  • Les politiques de planification utilisées sont SCHED_FIFO ou SCHED_RR.
  • Maintient un temps d'exécution à faible latence.
  • Offre la possibilité de mesurer, d'enregistrer et de configurer le temps de réponse.

Pour mieux comprendre comment kernel-rt est différent d'un noyau standard, le diagramme suivant explique comment utiliser kernel-rt maintient une faible latence et des temps de réponse dans le système.

Dans le schéma ci-dessus, bleu les tracés représentent le temps de réponse (ms) sur un noyau RHEL7 standard réglé, tandis que vert les points représentent le temps de réponse (ms) sur un kernel-rt RHEL7 réglé . La section verte montre la cohérence, la faible latence et le faible temps de réponse. Pour étudier ce graphique et les tests associés plus en détail, veuillez vous reporter au guide officiel de Red Hat "Why Use Red Hat Enterprise Linux for Real Time to Optimize Latency."

Ci-dessous, j'ai énuméré quelques autres différences essentielles pour comparer RHEL pour le temps réel avec RHEL standard :

  • Kexec et vmcore :l'installation et la configuration sont identiques à celles de RHEL standard.
  • Modules tiers – Tous les modules doivent être recompilés avec kernel-rt avant d'être utilisé.
  • irqbalance démon - Désactivé par défaut.
  • Politique de planification - Seul SCHED_FIFO ou SCHED_RR est utilisé.
  • Interruption (IRQ) :utilise des processeurs dédiés pour isoler les processus les uns des autres.

Installez RHEL pour le temps réel

Effectuons une installation rapide et observons les autres packages qui font partie d'un kernel-rt installation. Une image ISO distincte de kernel-rt est disponible pour un nouvel approvisionnement. Un utilisateur/administrateur peut également installer le kernel-rt Package RPM sur un système RHEL standard existant, suivi d'un redémarrage.

Étape 1 :Téléchargez l'image ISO nommée RHEL for Real-Time depuis le portail client Red Hat et la mise à disposition. Vous pouvez également utiliser une boîte RHEL standard existante et activer le rhel-7-server-rt référentiel pour récupérer kernel-rt colis.

Étape 2  :Effectuez une installation de groupe pour installer simultanément tous les packages spécifiques à RT.

Étape 3 :Vérifiez tous les packages dépendants.

Étape 4 :Redémarrez le système, puis sélectionnez kernel-rt depuis la console de démarrage.

Les utilisateurs doivent effectuer l'installation du groupe RT, car il fournit tous les éléments kernel-rt nécessaires forfaits dépendants. Le tableau suivant affiche de brefs détails sur les packages dépendants :

  • kernel-rt - Noyau en temps réel
  • rt-setup - Le package le plus critique pour la configuration de l'environnement RT.
  • rtctl - Configure les priorités de planification pour le thread du noyau.
  • rt-test, rt-checks, rteval - Utilisé pour tester les capacités et les charges du système.

Permettez-moi de vous donner un très bref scénario réel illustrant pourquoi l'installation du groupe RT est cruciale. L'un des principaux clients de télécommunications exécutait le noyau RHEL en temps réel (3.10.0-693.11.1.rt56.632.el7) en tant qu'environnement de cluster à trois lames sur la machine HP ProLiant BL460c Gen9. Ils ont observé des retards de trafic et des délais d'attente dans l'environnement du cluster. Un grand nombre de paquets UDP self-heartbeat (HB) manquaient ou étaient abandonnés. Nous avons observé qu'il n'y avait aucun problème avec les cartes réseau ou les modules de cluster après avoir analysé pcap et strace paquets. Un diagnostic plus approfondi a montré que le rt-setup le paquet était manquant car kernel-rt a été installé de force sans aucun de ses packages dépendants.

Environnement HB manqué en 7 jours HB manqué en 7 jours avec rt-setup
hostname-a12 138 0
hostname-a13 113 0
hostname-a14 118 5

Ce rt-setup package est responsable de la configuration et de l'exécution de rt-entsk démon, qui empêche la génération d'IPI et le retard des tâches en temps réel.

Les puces suivantes présentent certaines des fonctionnalités clés de rt-setup (v2.0-6):

  • Crée des groupes en temps réel.
  • Ajoute une configuration des limites en temps réel pour PAM.
  • Ajoute /usr/bin/rt-setup-kdump pour configurer kdump dans RT.
  • Ajoute des règles spécifiques à udev pour les irq threadés et /dev/rtc accès.
  • Ajoute /usr/bin/slub_cpu_partial_off pour désactiver cpu_partials dans SLUB.
  • Ajoute un démon de clé statique d'horodatage net-socket (rt-entsk ).

Conclusion

Cela vaut la peine d'exécuter un noyau en temps réel et d'évaluer son potentiel car de nombreuses applications peuvent en bénéficier. Kernel-rt peut être réglé pour réduire davantage les problèmes de performances. Des outils tels que ftrace sont fournis avec RHEL pour le temps réel et sont très utiles pour analyser et déboguer les problèmes de latence. Cependant, ces détails sortent du cadre de cet article.

Le noyau temps réel existe depuis longtemps, mais de nombreux administrateurs système ne savent pas comment l'utiliser. Dans cet article, j'ai défini ce que fait le noyau temps réel. Je vous ai également fourni des informations sur la façon de l'installer. Peut-être que le noyau en temps réel aidera votre organisation à obtenir des performances Linux encore meilleures !

[ Cours en ligne gratuit :Présentation technique de Red Hat Enterprise Linux. ]


Linux
  1. Travailler avec des canaux sur la ligne de commande Linux

  2. Enregistrez Red Hat Enterprise Linux et attachez un abonnement avec Ansible

  3. Configuration d'une adresse IPv6 dans Red Hat Enterprise Linux 7 et 8

  4. Création d'une image Red Hat Enterprise Linux 7 personnalisée pour Microsoft Azure

  5. Travailler avec des calendriers dans le terminal Linux

RHEL 6 – Guide d'installation étape par étape de Red Hat Enterprise Linux Server

Étapes d'installation de Red Hat Enterprise Linux (RHEL) 8 avec captures d'écran

Installer Red Hat Enterprise Linux Server à partir d'une image ISO

Comment installer Red Hat Enterprise Linux 8 (RHEL 8)

Patcher le noyau Linux Raspberry Pi avec KernelCare GRATUITEMENT !

Guide de démarrage pour Oracle Enterprise Linux avec captures d'écran