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. ]