Linux mit harter Echtzeit durch Preempt-RT zum Messen und Steuern

Ähnliche Dokumente
Linux und Echtzeit Jan Altenberg Linutronix GmbH Jan Altenberg Linutronix GmbH

Embedded GNU/Linux mit Gnublin

RealTime Linux. Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam

Linux RT-Preempt Echtzeitkenngrößen ermitteln und testen. Embedded Testing 2017 Thomas Maierhofer Consulting

Linux wird echtzeitfähig: RT-Extension vs. PREEMPT_RT

POSIX Echtzeit: Kernel 2.6 und Preempt-RT

Harte Echtzeit unter Linux Fallstudie RTAI vs. RT-Preempt

Von der Theorie zur Praxis: Echtzeitplanung in der Informatikausbildung

Was ist Linux im Vergleich zu Windows, Folie 1 von 13

SAFE HARBOR STATEMENT

Network-Attached Storage mit FreeNAS

Effizient, sicher und flexibel: Desktop-Virtualisierung mit Citrix XenDesktop

User Mode Linux. Sven Wölfel 15. April 2005

LogApp - Security Information und Event Management leicht gemacht!

Druckansicht: SPS - Controller PFC200; CS 2ETH RS Telecontrol ECO/T; EXT - Artikelnummer: /

Embedded Linux. Arthur Baran

Leitfaden für die Installation der freien Virtual Machine. C-MOR Videoüberwachung auf einem VMware ESX Server

AED-SICAD. Dokumente zu Systemarchitektur und Performance. CPU-Test mit Passmark. Autoren: Dr. Martin Ameskamp. Status: Freigegeben.

USB / LAN Interface ACS - Power Source HBS Electronic GmbH

Thema: Systemsoftware

IO Performance in virtualisierten Umgebungen

LANCOM Techpaper Routing-Performance

Echtzeitanforderung und Linux

Xenologie oder wie man einen Plastikmainframe baut

step Electronic GmbH

Linux Terminal mit Ethernet und Java. Eine dynamische Plattform für Automatisierungsapplikationen?

1 Systemadministration

EXPERTS IN DATA STORAGE

Embedded Linux Automatisierung für die Zukunft

1.1 Leicht oder schwer? Installieren Automatisiert und schnell: Installieren mit Kickstart Prüfungsvorbereitung 27

Installation von Debian Linux auf IBM PSeries Cross Compiler

Energiesparmechanismen des

DRN-32CT PCI Ethernetkarte

SUPERCOM 7 32-BIT UND 64-BIT WINDOWS UND LINUX FÜR. ADONTEC, All Rechte vorbehalten. Rel D 7020

WRT als Plattform für anderes

ITK Micro 2.1 / Columbus Card

Der neue Hessische Hochleistungsrechner HHLR

M5000 einfach ablösen durch T4/T5 LDoms und Solaris Zonen

Systemvoraussetzungen für ConSol*CM Version Architektur Überblick

ORACLE Database Appliance X4-2. Bernd Löschner

Rechner- und Systemoptimierung für die Benutzung von WinPC-NC Light und WinPC-NC Economy

Dr.-Ing. Kühn. KuehnOpt. Zuschnittoptimierung und Etikettendruck direkt an der Säge für Android Hardware, embedded Systeme und Gateways 3/2017

Meine SPS kann Linux, und nun?

Installationsanleitung Linux ab Kernel 2.2.x. für die Add-on Karten: ETC-7320 ETC-7181

Virtuelle Leit-/Managementsysteme. 22. August 2012, Christoph Müller, MST Systemtechnik AG

Anleitung: Verbindung mit der Datenbank

ORGA 6000 in Terminalserver Umgebung

VirtualBox und OSL Storage Cluster

XEN Performance. Projektpraktikum Informatik. Arne Klein Arne Klein () XEN Performance / 25

Praxis Linux-Administration

Busse. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg

Asset.Desk Inventarisierung IT Asset Management

4 Port USB 3.0 PCI Express-Karte - 2 Externe und 2 Interne mit SATA Power

Leitfaden für die Installation von C-MOR in einer Virtuellen Maschine Experten Installation mit eigener Partitionierung ab Version 5.

NTCS Synchronisation mit Exchange

elpromonitor Software - Systemvoraussetzungen

Fronplattenbeispiel RAL9005 Frontplattenbeispiel 19 Rack - RAL7035 Frontplattenbeispiel Edelstahl IP65

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Version Deutsch

Industrielle Kommunikation / GPRS/UMTS/LTE / Fernwirksysteme / Steuerungen

Embedded Linux gnublin Board Programmieren Sonstiges. Embedded Linux am Beispiel des Gnublin-Boards

4 Einrichten von Windows

Python macht Embedded Linux angenehmer

Virtualisierung im Echtzeitbereich. Andreas Hollmann FH Landshut EADS Military Air Systems

Quick Reference Guide

UEFI. Unified Extensible Firmware Interface UEFI. OSP 2015 UEFI Rene Brothuhn Seite: 1

DST EINFÜHRUNG IN MRT (V2)

Grundlagen der Automatisierungstechnik. (Automatisierungstechnik 1) 5. Echtzeit

Vorraussetzungen des Backup-Skripts

xvm Platform best Open Systems Day Oktober 2008 Dornach Marco Kühn best Systeme GmbH

Slothful Linux: An Efficient Hybrid Real-Time System by Hardware-Based Task Dispatching. Rainer Müller

VPNs mit OpenVPN. von Michael Hartmann netz.de>

EX Slot PCI Box Zur Erweiterung um 4 PCI Anschlüsse für ExpressCard

Produktupdate HP DESKTOP PORTFOLIO - OKTOBER

Just-In-Time-Compiler (2)

Datalogging mit Panasonic Automatisierungstechnik

Hager witty park XEV6xx

Just-In-Time-Compiler (2)

Administration von großen Ubuntu Linux Desktop Umgebungen mit Univention Corporate Client

CUPS, Samba, Apache. Drucken mit CUPS. Dateifreigabe mit Samba. Web-Server mit Apache

EX RS-232 zu Ethernet / IP. Bedienungsanleitung. 7. Anschlüsse. 8. Technische Daten. Seriell 9 Pin D-SUB Stecker

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10

Allgemeine Informationen zum POS 600 / 605

Linux Embedded. Heimo Schön/August Hörandl 11/2004 Seite 1/17

Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP)

Inbetriebnahme der I-7188EN Serie

Windows CE. Process Control and Robotics. Fabian Garagnon

DRN-32T PCI Ethernetkarte

MTF60 AT/BT Universeller USB magnetischer Temperaturfühler in Miniaturbauweise

Leitfaden für die Installation der Videoüberwachung C-MOR

Virtualisierung mit Freier Software

Systemvoraussetzungen

ESP8266 unter Linux. Doku-Repo:

LogApp - Verordnungskonforme Protokollierung Das Werkzeug für IT-Sicherheit und Compliance

Ist nur Appliance ODA schon Rechenzentrum in der Kiste?

EX x RS-232 zu Ethernet / IP. Bedienungsanleitung. 7. Anschlüsse. 8. Technische Daten. Seriell 9 Pin D-SUB Stecker

Industrie-Lösungen. logger software

Herbsttreffen Hands-on Session

J LJ. Andrew Lpckhart O'REILLY S. Deutsche Übersetzung von Andreas Bildstein- , / LJ \ I. Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo

Transkript:

Linux mit harter Echtzeit durch Preempt-RT zum Messen und Steuern Etwas Theorie und hauptsächlich Echtzeit-Praxis mit Preempt_RT, die auch jeder selber machen kann Linuxtag Chemnitz 2017 März 2017 Dr. Rolf Freitag

Was bedeutet harte Echtzeit? Die Antwortzeit eines Rechners, die Zeit von einem Ereignis über die Reaktion/Verarbeitung bis zur Antwort, ist zuverlässig und damit immer unterhalb der spezifizierten Obergrenze, z. B. 50 µs, die zur Steuerung einiger Maschinen auch benötigt werden. Neue Technik wie Digitaluhren, GPS, Motorsteuerungsgeräte, MRT,... Zusätzlicher Overhead wie keine CPU Sleep States und einige Prozent weniger Performance durch ständige Unterbrechbarkeit.

Echtzeit-Kernel installieren Variante A, z. B. für Ubuntu (Server): VanillaKernelquellen patchen, konfigurieren, compilieren, installieren, booten, testen (cat /sys/kernel/realtime). Beschreibung: https://rt.wiki.kernel.org/index.php/rt_preem PT_HOWTO Variante B: Unter Debian, seit Kernel 3.2 (Januar 2012) einfach "aptitude install linuximage-rt-amd64 linux-image-rt-amd64-dbg linux-headers-rt-amd64", für andere Plattformen als AMD64 entsprechende andere Pakete.

Tuning und Benchmarking Es gibt verschiedenste Tips zum Tuning, z. B. unter https://rt.wiki.kernel.org/index.php/howto:_build_an_rt-application, aber sie veralten schnell, weil sie abhängen von der Hardware und der Software (und BIOS/(U)EFI), so das man nicht alle Tips blind folgen sollte, z. B. USB komplett deaktivieren, sondern testen sollte, mit der eigenen Applikation oder einem Benchmark wie Cyclictest (Paket rt-tests): https://rt.wiki.kernel.org/index.php/cyclictest. Generell bedeutet das Tuning abstellen von allen Energiesparmaßnahmen und virtuelle CPUs/Cores (Hyperthreading), auch im BIOS, wobei das Programm powertop, von Intel, hilfreich ist. Kurzgefasst ist das Tuning im Wesentlichen: Hyperthreading und auch andere virtuelle CPUs (Cores) deaktivieren, CPU Frequency Scaling deaktivieren, TurboBoost und anderes Übertakten aktivieren, CPU Sleep states deaktiveren. Bei den Applikationen sollte man ein kleines Warmup von unter einer Sekunde einbauen. Getunt werden kann viel, z. B. Die IRQ-Prioritäten, Bindung von Threads an Kerne, aber meist ist das nicht nötig und der Flaschenhals sind häufig SMIs (System Management Interrupts).

Serverbetrieb Für Dauerbetrieb muss NTP so konfiguriert werden, das die RTC keine Sprünge macht, wobei Schaltsekunden ein prinzipielles Problem unter Linux sind (auf die Sekunde 59 folgt eine zweite 59er). Für zuverlässigen Start/Betrieb sollten Watchdogs verwendet werden, insbes. der NMI-WDT und der praktisch immer vorhandene BIOS-WDT, ergänzend ein IP-WDT. Für Remote-Zugang eignet sich ein Reverse SSH Tunnel, für Uploads/Downloads rsync mit passwortlosem SSH. Im Netzwerk macht sich Preempt-RT kaum bemerkbar, wie schon Pingen nach localhost zeigt (ping -q -s 28 -l 1 -p 0f1e2d3c4b5a6978 -i 0.001 localhost).

Vergleich RT- und Nicht-RTKernel/Tuning Auf getunten PCs zeigen Benchmarks wie "cyclictest -a -t -n -p99" bei Kerneln OHNE Preempt-RT (generic, lowlatency) Worst-Case-Latenzen im Bereich von mehreren ms schon nach wenigen Minuten bis Tagen, abhängig von der Auslastung, mit bleibt der Wert bei circa 30 µs auch nach Wochen und unter Last. Mit RT-Kernel zeigt sich ohne Tuning zunächst eine kleine Worst-Case-Latenz von circa 30 µs, nach einigen Tagen (hunderte Millionen Messungen) aber 1000 mal höhere Werte. Ohne Tuning und ohne Preempt-RT zeigen auch Lowlatency-Kernel manchmal Worst-Case-Werte von mehreren Sekunden, die ein Benutzer als "Einfrieren" wahrnimmt, meist liegen die Werte bei 50-100 ms.

Vergleich vom Stand von 2005 (RTAI) mit heute (Preempt_RT) RTAI: Die Programme sind Module, die mit insmod gestartet, mit rrmod beendet werden und RTAI-Funktionen verwenden, z. B. rt_task_init(), rt_task_delete(), rt_busy_sleep(). Preempt_RT: Die Programme sind gewöhnliche User-Space-Programme, wie Cyclictest, und nahezu vollständig portabel, häufig mit PosixThreads und -Funktionen wie clock_nanosleep(). Die erreichbaren WorstCase-Latenzen liegen weiterhin im niedrigen zweistelligen µs-bereich, circa 30 µs.

Beispiel multithreaded_logger Wie bei Cyclictest werden C und Posix-Threads verwendet, weil portabel, performant und lange bewährt. Ein Timer-Thread wird für periodische Aufgaben verwendet, mit Auswertung von Istzeit-Sollzeit, der Main-Thread koordiniert den Ablauf, die Worst-Case-Latenzen sind wie bei Cyclictest. Je ein Thread für jede Schnittstelle (seriell, parallel), der TimerThread mit der höchsten Priorität, die davon getriggerten (parallelen) mit der zweihöchsten, die IRQ-getriggerten (seriellen) mit der dritthöchsten, der Thread zum leeren des Augangspuffers der Logdatei mit der niedrigsten. Die seriellen Threads erkennen und defragmentieren fragmentierte Datenpakete. Über große Ringpuffer werden die Daten ohne Locks ausgetauscht. Zum Starten dient ein Skript das u. a. die Schnittstellen konfiguriert, für Dauerbetrieb wird es als als Upstart-Service verwendet http://true-random.com/homepage/projects/logger/index.html

Anwendung: Messrechner mit USV multithreaded_logger auf einem Esprimo E9900 mit 35 µs Zykluszeit, 1 Parallelport, 2 serielle Schnittstellen, ein halbes Jahr im Ausland im Einsatz

Einige Schnittstellen-Beispiele DieTP35 aka 9815EL-4 ist eine low-profile PCIe-Karte, kostet circa 50 Euro und hat (bis zu) 52 Eingangspins. Halbleiterrelais wie das rund 25 Euro kostende JGX-3380A (ohne CE) ermöglichen das Schalten von 3 Phasen mit nur einem Pin von einem Parallelport oder einer seriellen Schnittstelle (RS-232 DTR, RTS).

Anhänge