GNU/Linux >> Znalost Linux >  >> Linux

Práce s jádrem v reálném čase pro Red Hat Enterprise Linux

Schopnost jádra v reálném čase existuje v open-source ekosystému již více než deset let. Podobně je již několik let k dispozici podpora Red Hat Enterprise Linux (RHEL) pro jádro pracující v reálném čase. Přesto mnoho systémových administrátorů nesprávně vykládá jeho základní koncepty a skutečné provozní chování. V tomto článku popisuji některé z jeho klíčových funkcí, rozdíly od standardního jádra a kroky rychlé instalace.

Zpočátku společnost Red Hat představila produkt nazvaný „Red Hat Enterprise MRG“, kde MRG znamenalo Messaging, Real-time a Grid. MRG 2 byl založen na verzích RHEL 5 a RHEL 6, zatímco MRG 3 byl založen výhradně na RHEL 6. Od RHEL 7 byl produkt MRG zastaralý a „RHEL pro Real-Time“ byl představen jako samostatný produkt.

Co je jádro v reálném čase?

Jádro pracující v reálném čase nemusí být nutně lepší nebo lepší než standardní jádro. Místo toho splňuje různé obchodní nebo systémové požadavky. Jde o optimalizované jádro navržené tak, aby udržovalo nízkou latenci, konzistentní dobu odezvy a determinismus. Pro srovnání, standardní jádro RHEL se zaměřuje na operace orientované na propustnost a spravedlivé plánování úloh. Jádro pracující v reálném čase je také známé jako kernel-rt nebo preempt-rt .

Nejjednodušší způsob, jak identifikovat jádro v reálném čase, je spustit uname -r na terminálu a poté vyhledejte rt klíčové slovo ve verzi jádra. Pokud rt chybí, pak systém používá standardní jádro.

Následující výstup je příklad:

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

Některé důležité kernel-rt mechanismy zahrnují:

  • Priorita úkolu se kontroluje (1–99) při velkém zatížení.
  • Pro provádění CPU mají přednost úlohy s vysokou prioritou (99).
  • Nepoužívá zásadu Completely Fair Scheduling (CFS).
  • Používané zásady plánování jsou SCHED_FIFO nebo SCHED_RR.
  • Udržuje dobu provádění s nízkou latencí.
  • Nabízí příležitost měřit, zaznamenávat a konfigurovat dobu odezvy.

Abychom lépe pochopili, jak kernel-rt se liší od standardního jádra, následující diagram vysvětluje, jak používat kernel-rt udržuje nízkou latenci a dobu odezvy v systému.

Ve výše uvedeném diagramu modrá grafy představují dobu odezvy (ms) na vyladěném standardním jádře RHEL7, zatímco zelené body představují dobu odezvy (ms) na vyladěném RHEL7 kernel-rt . Zelená část ukazuje konzistenci, nízkou latenci a nízkou dobu odezvy. Chcete-li si tento graf a související testování prostudovat podrobněji, nahlédněte do oficiálního průvodce Red Hat „Proč používat Red Hat Enterprise Linux v reálném čase k optimalizaci latence.“

Níže jsem uvedl některé další rozdíly nezbytné pro srovnání RHEL pro Real Time se standardním RHEL:

  • Kexec a vmcore – Instalace a konfigurace jsou stejné jako u standardního RHEL.
  • Moduly třetích stran – Všechny moduly musí být překompilovány pomocí kernel-rt před použitím.
  • irqbalance démon – ve výchozím nastavení zakázáno.
  • Zásady plánování – Používá se pouze SCHED_FIFO nebo SCHED_RR.
  • Přerušení (IRQ) – Používá vyhrazené procesory k vzájemné izolaci procesů.

Nainstalujte RHEL v reálném čase

Proveďme rychlou instalaci a podívejme se na ostatní balíčky, které jsou součástí kernel-rt instalace. Samostatný ISO obraz kernel-rt je k dispozici pro nové poskytování. Uživatel/admin může také nainstalovat kernel-rt RPM balíček na stávajícím standardním systému RHEL, po kterém následuje restart.

Krok 1 :Stáhněte si obraz ISO s názvem RHEL for Real-Time ze zákaznického portálu Red Hat a poskytování. Můžete také použít stávající standardní box RHEL a povolit rhel-7-server-rt úložiště pro načtení kernel-rt balíčky.

Krok 2 :Proveďte skupinovou instalaci a nainstalujte všechny balíčky specifické pro RT současně.

Krok 3 :Ověřte všechny závislé balíčky.

Krok 4 :Restartujte systém a poté vyberte kernel-rt ze spouštěcí konzoly.

Uživatelé by měli provést instalaci skupiny RT, protože poskytuje vše potřebné kernel-rt závislé balíčky. Následující tabulka zobrazuje stručné podrobnosti závislého balíčku:

  • kernel-rt – jádro pracující v reálném čase
  • rt-setup – Nejdůležitější balíček pro nastavení prostředí RT.
  • rtctl – Konfiguruje priority plánování pro vlákno jádra.
  • rt-test, rt-checks, rteval – Používá se k testování schopností a zatížení systému.

Dovolte mi, abych vám poskytl velmi stručný skutečný scénář ilustrující, proč je instalace skupiny RT zásadní. Jeden z předních telekomunikačních zákazníků provozoval jádro RHEL v reálném čase (3.10.0-693.11.1.rt56.632.el7) jako tříblade clusterové prostředí na počítači HP ProLiant BL460c Gen9. Pozorovali dopravní zpoždění a časové limity v prostředí clusteru. Chybělo nebo zahodilo velké množství paketů UDP self-heartbeat (HB). Zjistili jsme, že po analýze pcap nebyly žádné problémy se síťovými kartami nebo moduly clusteru a strace pakety. Další diagnostika ukázala, že rt-setup balíček chyběl, protože kernel-rt byl vynuceně nainstalován bez jakéhokoli z jeho závislých balíčků.

Životní prostředí Zmeškané HB za 7 dní Zmeškané HB za 7 dní s rt-setupem
hostname-a12 138 0
hostname-a13 113 0
hostname-a14 118 5

Toto rt-setup balíček je zodpovědný za konfiguraci a spuštění rt-entsk démon, který zabraňuje generování IPI a zpoždění úloh v reálném čase.

Následující odrážky zobrazují některé klíčové funkce rt-setup (v2.0-6):

  • Vytváří skupiny v reálném čase.
  • Přidává konfiguraci limitů v reálném čase pro PAM.
  • Přidává /usr/bin/rt-setup-kdump pro konfiguraci kdump v RT.
  • Přidává pravidla specifická pro udev pro vlákna irq a /dev/rtc přístup.
  • Přidává /usr/bin/slub_cpu_partial_off pro vypnutí cpu_partials v SLUB.
  • Přidává démona statického klíče časového razítka net-socket (rt-entsk ).

Zabalit

Stojí za námahu spustit jádro v reálném čase a vyhodnotit jeho potenciál, protože z něj může těžit mnoho aplikací. Kernel-rt lze vyladit pro další snížení problémů s výkonem. Nástroje jako ftrace jsou poskytovány s RHEL pro Real-Time a jsou velmi užitečné pro analýzu a ladění problémů s latencí. Tyto podrobnosti jsou však mimo rozsah tohoto článku.

Real-time jádro existuje již dlouhou dobu, ale mnoho systémových administrátorů si není jistých, jak s ním pracovat. V tomto článku jsem definoval, co dělá jádro v reálném čase. Také jsem vám poskytl informace o tom, jak jej nainstalovat. Možná jádro v reálném čase pomůže vaší organizaci dosáhnout ještě vyššího výkonu Linuxu!

[ Bezplatný online kurz:Technický přehled Red Hat Enterprise Linux. ]


Linux
  1. Práce s rourami na příkazovém řádku Linuxu

  2. Zaregistrujte si Red Hat Enterprise Linux a připojte předplatné s Ansible

  3. Konfigurace IPv6 adresy v Red Hat Enterprise Linux 7 a 8

  1. Analyzujte linuxové jádro pomocí ftrace

  2. Průběžné testování integrace linuxového jádra

  3. Vytvoření přizpůsobené image Red Hat Enterprise Linux 7 pro Microsoft Azure

  1. Práce s datovými toky na příkazovém řádku Linuxu

  2. Optimalizace obrazu ISO instalace Red Hat Enterprise Linux

  3. Jak získat zdarma Red Hat Enterprise Linux?