Welche Probleme begegnen uns bei der Arbeit mit Linux Systemen und wie kann präventiv oder auch behebend dagegen vorgegangen werden? Am 30. September 2020 veranstaltete die Software Engineering Community (SECO) der Telekom MMS den virtuellen Vortrag zu „Linux Performance“ und klärte darüber auf. Der Vortrag wurde präsentiert von Martin Schurz (System Architect für Agile Operation & Cloud, Telekom MMS).
Martin Schurz ist Mitglied der Mitarbeiterinitiative SECO und organisiert im Rahmen dessen verschiedene Veranstaltungen und Vorträge, um Wissen rund um die Software-Architektur und Software-Ingenieurskunst zu vermitteln.
In seinem Vortrag zu „Linux Performance“ stellt er verschiedene Methodiken zur Analyse von Performance Problemen unter Linux vor, die sich in der Praxis bewährten. Zusätzlich geht er auf mehrere Tools ein, die bei einer tieferen Analyse helfen. Viele davon können auch für applikationsspezifische Probleme genutzt werden (insbesondere für Java, PHP oder Python).
Ein ganz wichtiger Punkt ist, dass viele Dinge, die wir nutzen, auf Linux laufen. Besonders im Serverbereich. Dementsprechend können auch viele Probleme auftreten, die erkannt und behoben werden müssen. Deshalb sollte mein Vortrag zur Linux Performance Wege aufzeigen, welche Tools und Vorgehensweisen es gibt, um gegen diese Probleme vorzugehen beziehungsweise präventiv zu handeln.
Martin Schurz, System Architect für Agile Operation & Cloud, Telekom MMS
Zu Beginn seiner Präsentation beschäftigt er sich mit den Grundsatzfragen, wie man mit einer Linux Performance Analyse Probleme aufdeckt. Dabei wird von Martin Schurz mit praxisnahen und konkreten Beispielen der Einsatz der Tools und Methoden demonstriert. Aufgrund der Fülle an Tools, die schon zu Beginn vorgestellt werden, wird schnell klar, dass man sehr viel Zeit mit Performance Optimierungen verbringen kann. Doch wann und in welchem Umfang lohnt sich dies?
Seine Antworten darauf lauten, dass immer zuerst auf den wirtschaftlichen Aspekt der Fokus gelegt wird. Demnach seien die vorhandenen Ressourcen in der heutigen Zeit besonders günstig. Das beziehe sich vor allem die auf dem Markt verfügbaren Cloud-Lösungen, die schnell und einfach erworben und eingesetzt werden können. Zudem koste es Zeit, vorhandene Strategien und Lösungsansätze für die Fehlerbehebung zu optimieren bzw. durch einen Experten optimieren zu lassen. Demgegenüber müsse man jedoch immer die Vorteile eines solchen Unterfangens sehen. Unter Umständen können sich ständig neu hinzugekaufte Ressourcen gar nicht geleistet werden. Vielleicht kann mit den neuen Ressourcen und Cloud-Lösungen auch gar nicht die gewünschte Antwortzeit erreicht werden. Und wie nachhaltig kann ein ständig steigender Konsum eigentlich sein? In einigen Fällen sei eine Linux-Performance Analyse und die stetige Verbesserung durch einen Experten günstiger und zielführender.
Martin Schurz erinnert außerdem daran, wie wichtig es sei, seine Ziele zu kennen, umfassendes Historienwissen mitzubringen sowie seine Fragen ausführlich zu formulieren, um anschließend die passende Antwort zu finden. Genauso relevant ist es aber auch, bei einer Problembehebung immer bei den Schnittstellen zu beginnen (Schnittstellen: Datenbank, HTTP, Dateisystem).
Um die Gründe für die verschiedenen Auslastungen von Programmen zu verstehen, nennt er für die CPU-Beobachtung unter anderem Tools, wie top, mpstat, pidstat oder htop. Außerdem gab er einen Überblick über verschiedene Tools zur Analyse des IO (z.B. iostat oder iotop), des Speichers und der Kernel Metriken (z.B. free, vmstat, finocore oder slabtop). In einer Übersicht zeigt Martin Schurz zudem wichtige Programme, um Netzwerkaktivität und Statistiken zu überprüfen (z.B. tcpdump oder nstat) und einige weitere, um eventuelle Probleme ergründen zu können. Danach fokussiert er sich auf verschiedene Methodiken zur Analyse von Performanceproblemen. Dem voraus stellte er zuerst die Anti-Methoden auf. Was sollte man im Fall der Fälle nicht tun. Zum Beispiel ist das „Neustarten“ nicht immer das Mittel zum Zweck genauso wie das Zögern vor der Tat. Inhalt der fundierten Methoden waren schließlich die 60 Sekunden Linux Performance Analyse (realisierbar mit z.B. vmstat 1, pidstat 1, uptime und top), die USE Methode (Zusammensetzung aus Utilization, Saturation, Errors) und aktives Benchmarking (z.B. System unter Lasten setzen oder Bottleneck suchen). Anschließend gab er Einblick in das Tracing mit den Tools wie strace, eBPF oder BCC Tools und dem Profiling mit zugehörigen Methoden für CPU Profiling oder Flamegraphs.
Der Vortrag von Martin Schurz gab einen spannenden Einblick, welchen Problemen man in produktiven Umgebungen begegnet und mit welchen Methodiken und Tools diese analysiert werden können. Durch die Abwechslung von Theorie und direkt präsentierten praktischen Beispielen wurde diese Thematik interessant und aufschlussreich von ihm herübergebracht.
Sie möchten mehr zu dem Thema Linux Performance erfahren?
> Hier finden Sie auch das Folienset zum Vortrag
Cloud Application Management
Egal ob Onlineshop, IOT-Lösung oder Intranet Portal – wir betreiben Ihre geschäftskritische Webanwendung. Nutzen Sie die Vorteile der Cloud und sichern Sie die Compliance für Ihre Business-Applikationen.
Ist digitales Geschäft eigentlich zuverlässig, sicher, vertrauensvoll, ausfallsicher? Wie und warum – darüber schreibe ich in diesem Blog.