Tutorials  /  Linux Basics

Linux Performance optimieren: Kernel-Tuning, CPU-, Netzwerk- & Speicheranalyse

Ccentron Redaktion · Juni 2026 ·8 Min. Lesezeit ·Linux Basics, Tutorial

In modernen IT-Infrastrukturen bildet Linux eine zentrale Grundlage für viele Unternehmenssysteme. Es betreibt Cloud-Plattformen, unterstützt umfangreiche Datenverarbeitung und verarbeitet anspruchsvolle Netzwerk-Workloads. Dank seiner Flexibilität, Leistungsfähigkeit und des Open-Source-Ökosystems ist Linux in vielen produktiven Umgebungen das bevorzugte Betriebssystem. Dennoch ist die Standardkonfiguration eines Linux-Systems – insbesondere auf Kernel-Ebene – nicht immer optimal für leistungsintensive Szenarien ausgelegt. Um das volle Potenzial eines Systems auszuschöpfen, führen Administratoren häufig Kernel-Tuning durch. Dabei werden Kernel-Parameter gezielt angepasst, um konkrete Performance-Ziele zu erreichen. Dieser Leitfaden beschreibt typische Werkzeuge und Methoden, mit denen Fachleute die Leistung von Linux-Systemen analysieren und verbessern.

Wichtige Erkenntnisse

  • Analysewerkzeuge wie perf, ftrace und bpftrace ermöglichen eine tiefgehende Systemanalyse – von CPU-Metriken bis hin zu detailliertem Kernel-Tracing und Speicherüberwachung.
  • Die Netzwerkleistung lässt sich deutlich verbessern, indem TCP/IP-Kernelparameter wie tcp_max_syn_backlog, tcp_rmem und tcp_wmem angepasst werden.
  • Moderne Congestion-Control-Algorithmen wie BBR reduzieren Latenzen, indem sie die Übertragungsrate anhand von Bandbreite und Round-Trip-Time statt anhand von Paketverlusten steuern.
  • NUMA-bewusste Optimierung steigert die Performance in Multi-Socket-Systemen, indem Speicher, CPU-Kerne und Netzwerkschnittstellen korrekt ausgerichtet werden.
  • Werkzeuge wie valgrind und bpftrace helfen dabei, Speicherlecks, Fragmentierung und ineffiziente Speicherzuweisungen zu erkennen.
  • I/O-Analyseprogramme wie iostat unterstützen dabei, Festplattenengpässe zu identifizieren und Scheduler zu optimieren.
  • Durch das Speichern von Kernelparametern in /etc/sysctl.conf bleiben Optimierungen auch nach einem Neustart des Systems aktiv.
VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Performance-Profiling und Benchmarking

Linux-Server kommen in vielen unterschiedlichen Umgebungen zum Einsatz – von Hosting-Plattformen bis hin zu geschäftskritischen Anwendungen. Daher ist es entscheidend zu verstehen, wie sich Systemleistung analysieren und optimieren lässt. Administratoren, die hochperformante Dienste, datenintensive Anwendungen oder latenzkritische Systeme betreiben, müssen Performance-Daten korrekt erfassen und interpretieren können.

Für die Analyse des Linux-Kernels werden spezialisierte Werkzeuge benötigt, die präzise Leistungsdaten erfassen können. Drei besonders wichtige Tools sind perf, ftrace und bpftrace. Jedes dieser Werkzeuge liefert unterschiedliche Einblicke – von allgemeinen Systemmetriken bis hin zu detailliertem Kernel-Tracing.

CPU-, Speicher- und I/O-Profiling

Das Werkzeug perf zählt zu den vielseitigsten Performance-Analysetools unter Linux. Es liefert Administratoren und Entwicklern detaillierte Informationen über CPU-Auslastung, Speicherverwendung und Ein-/Ausgabevorgänge. Durch die Nutzung von Kernel-Zählern lässt sich erkennen, welche Systembereiche besonders stark beansprucht werden.

Wenn beispielsweise Performanceprobleme auftreten und ein CPU-Flaschenhals vermutet wird, kann folgender Befehl verwendet werden, um Systemdaten zu erfassen:

Konsole
sudo perf record -F 99 -a --call-graph dwarf sleep 30

Dieser Befehl weist perf an, das System 30 Sekunden lang mit einer Frequenz von 99 Hz über alle CPU-Kerne hinweg zu analysieren und dabei Funktionsaufrufe mithilfe des DWARF-Debugformats zu erfassen.

Nach der Datenerfassung lassen sich die Ergebnisse folgendermaßen auswerten:

Konsole
sudo perf report --stdio

Der Bericht zeigt, wie CPU-Zyklen auf Prozesse und Funktionen verteilt sind. Mithilfe von Call-Graphs lässt sich erkennen, welche Codepfade besonders viel Rechenzeit benötigen, sodass ineffiziente Programmteile gezielt optimiert werden können.

CPU-Zyklen mit perf analysieren

In stark ausgelasteten Umgebungen – etwa bei stark frequentierten Webdiensten – kann es notwendig sein, CPU-Metriken wie Instruktionsanzahl, Cache-Misses oder Branch-Fehlvorhersagen zu messen. Der folgende Befehl analysiert eine laufende Anwendung:

Konsole
sudo perf stat -e cycles,instructions,cache-misses,branches,branch-misses ./web_service

Dabei werden mehrere Hardwaremetriken erfasst:

  • cycles – Gesamtzahl der verbrauchten CPU-Zyklen
  • instructions – Anzahl ausgeführter Instruktionen
  • cache-misses – Häufigkeit fehlgeschlagener Cache-Zugriffe

Das Verhältnis zwischen Zyklen und Instruktionen zeigt, ob eine Anwendung CPU-gebunden ist oder unter Ineffizienzen wie Cache-Misses leidet. In skalierbaren Umgebungen ist diese Analyse besonders wichtig, da eine bessere Ressourcennutzung direkt Kosten spart.

Kernel-Funktionstracing für detaillierte Analyse

Während perf eine gute Übersicht über die Systemleistung bietet, sind für bestimmte Probleme tiefere Einblicke in Kernelprozesse erforderlich. Hier kommt das ftrace-Framework zum Einsatz, mit dem sich Kernel-Funktionen gezielt verfolgen lassen.

Wenn beispielsweise hohe Latenzen bei Schreiboperationen auftreten, kann die Kernel-Funktion sys_enter_write überwacht werden:

Konsole
echo function > /sys/kernel/debug/tracing/current_tracer
echo sys_enter_write > /sys/kernel/debug/tracing/set_ftrace_filter
cat /sys/kernel/debug/tracing/trace_pipe

Damit lassen sich Kernel-Schreiboperationen in Echtzeit beobachten und mögliche Verzögerungen durch Festplattenlatenz oder Ressourcenengpässe erkennen.

Programmierbares System-Tracing mit bpftrace

Für besonders flexible Analyseanforderungen bietet bpftrace leistungsfähige Möglichkeiten zur dynamischen Systembeobachtung. Das Tool basiert auf dem Berkeley Packet Filter und ermöglicht das Monitoring von Kernel- und User-Space-Ereignissen.

Um beispielsweise Kernel-Speicherzuweisungen zu verfolgen, kann folgender Befehl verwendet werden:

Konsole
sudo bpftrace -e 'tracepoint:kmem:kmalloc { printf("Allocated %d bytes\n", args->bytes_alloc); }'

Das Skript protokolliert jede Kernel-Speicherzuweisung und zeigt die jeweils reservierte Größe an. Dadurch lassen sich Speicherlecks oder ineffiziente Speicherverwaltung erkennen.

Speicherprofiling und Analyse

Speicherprofiling zeigt, wie Anwendungen Speicher reservieren und verwalten. In Systemen mit begrenzten Ressourcen können ineffiziente Speicherzuweisungen oder Lecks schnell zu Out-of-Memory-Situationen führen.

Das Tool massif aus der valgrind-Suite kann die Speicherverwendung über einen Zeitraum hinweg aufzeichnen:

Code
valgrind --tool=massif --time-unit=B ./memory_hungry_app

Dieser Befehl misst die Speichernutzung in Bytes und dokumentiert Peaks bei der Speicherzuweisung.

Zur Auswertung der Ergebnisse kann folgender Befehl genutzt werden:

Code
ms_print massif.out.<pid>

Der Bericht zeigt, welche Funktionen besonders viel Speicher reservieren und wo Optimierungspotenzial besteht.

I/O-Leistungsanalyse

Festplatten- und Netzwerk-I/O sind häufig die größten Engpässe in datenintensiven Systemen. Daher ist es wichtig zu erkennen, ob Verzögerungen durch Speicherzugriffe oder Netzwerkprozesse entstehen.

Mit dem Tool iostat lassen sich detaillierte I/O-Statistiken abrufen:

Code
iostat -dx 5

Die Ausgabe wird alle fünf Sekunden aktualisiert. Zwei besonders wichtige Kennzahlen sind:

  • await – durchschnittliche Wartezeit für I/O-Anfragen
  • svctm – durchschnittliche Bearbeitungszeit einer I/O-Anfrage

Wenn der Wert für await deutlich höher als svctm ist, deutet dies darauf hin, dass das Speichersystem überlastet ist.

Optimierung des Linux-Netzwerk-Stacks

Die Netzwerkleistung spielt eine entscheidende Rolle für moderne Linux-Systeme – insbesondere bei Anwendungen mit hoher Bandbreite oder geringer Latenz. Durch das Anpassen von Kernelparametern können Administratoren die Netzwerkleistung deutlich verbessern.

TCP-Verbindungswarteschlange erhöhen

Der Parameter tcp_max_syn_backlog bestimmt, wie viele eingehende TCP-Verbindungsanfragen gleichzeitig in der Warteschlange stehen können.

Konsole
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=4096

Damit kann das System deutlich mehr gleichzeitige Verbindungsanfragen verarbeiten.

Damit die Einstellung dauerhaft aktiv bleibt:

Konsole
echo "net.ipv4.tcp_max_syn_backlog=4096" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

TCP-Puffergrößen konfigurieren

TCP nutzt dynamische Speicherpuffer für das Senden und Empfangen von Daten. Diese lassen sich über die Parameter tcp_rmem und tcp_wmem konfigurieren.

Konsole
sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 6291456"

Die drei Werte definieren Mindestgröße, Standardgröße und maximale Größe der Puffer.

Für eine dauerhafte Konfiguration:

Konsole
echo "net.ipv4.tcp_rmem =   4096 87380 6291456" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_wmem =   4096 65536 6291456" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Latenz reduzieren mit BBR Congestion Control

Moderne Congestion-Control-Algorithmen verbessern sowohl Netzwerkdurchsatz als auch Latenz. Der Algorithmus BBR passt die Übertragungsrate anhand der geschätzten Bandbreite und der Round-Trip-Time an.

Konsole
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr

Der aktuell verwendete Algorithmus lässt sich überprüfen mit:

Code
sysctl net.ipv4.tcp_congestion_control

Bufferbloat und Jitter reduzieren

Zu große Netzwerkpuffer können zu schwankenden Latenzen führen, die als Jitter bezeichnet werden. Eine Begrenzung der Puffergröße hilft dabei, eine stabilere Netzwerkleistung zu erreichen.

Konsole
sudo sysctl -w net.core.rmem_max=262144

NUMA-bewusste Netzwerkoptimierung

In Multi-Socket-Systemen mit Non-Uniform Memory Access (NUMA) hat die Speicher- und CPU-Lokalität großen Einfluss auf die Netzwerkleistung. Wenn Netzwerkinterrupts von CPU-Kernen desselben NUMA-Knotens verarbeitet werden, lassen sich Latenzen reduzieren und Durchsatz erhöhen.

Die Interrupt-Affinität kann folgendermaßen gesetzt werden:

Konsole
sudo echo 1 > /proc/irq/<IRQ_NUMBER>/smp_affinity

Zur Verteilung von Netzwerktraffic auf mehrere CPU-Kerne kann Receive Side Scaling aktiviert werden:

Code
ethtool -L eth0 combined 8

Fazit

Die Optimierung der Linux-Systemleistung erfordert einen strukturierten Ansatz aus Monitoring, Profiling und gezieltem Kernel-Tuning. Durch die Analyse von CPU-Verhalten, Speicherverwaltung, I/O-Engpässen und Netzwerkparametern lässt sich die Effizienz eines Systems erheblich steigern.

Maßnahmen wie das Anpassen von TCP/IP-Parametern, die Nutzung moderner Congestion-Control-Algorithmen, optimiertes Buffer-Management sowie NUMA-bewusste Netzwerkkonfiguration tragen dazu bei, stabile und leistungsfähige Linux-Umgebungen zu betreiben. Richtig angewendet stellen diese Strategien sicher, dass Linux-Infrastrukturen auch bei anspruchsvollen Workloads zuverlässig und effizient arbeiten.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren