Zurück zum Blog

Server langsam? Leistungsprobleme systematisch finden

Server langsam? So finden Sie unter Linux die Ursache: Load Average, CPU, RAM und Swap, Disk, Netzwerk und Anwendung mit htop, free, iostat und dmesg.

Nodesty-Team6 Min. LesezeitServer
Der Schriftzug Server Slow? mit CPU, RAM, Disk und Network auf dunklem Nodesty-Hintergrund

Wenn ein Server langsam wird, liegt die Ursache fast immer bei einer von vier Ressourcen: Prozessor, Arbeitsspeicher (RAM), Festplatte oder Netzwerk. Manchmal ist es keine davon, sondern die Anwendung selbst. Mit den richtigen Befehlen finden Sie in wenigen Minuten heraus, wo der Engpass liegt, und lösen das Problem auf Grundlage von Daten statt durch Raten.

In dieser Anleitung zeigen wir Schritt für Schritt, wie Sie herausfinden, warum ein Linux-Server langsam ist, mit welchem Befehl Sie jede Ressource prüfen und wie Sie die häufigsten Probleme beheben.

Der erste Blick: uptime und Load Average

Nachdem Sie sich per SSH mit dem Server verbunden haben, lautet der erste Befehl:

uptime

Die drei Zahlen am Ende der Ausgabe sind der Load Average: die durchschnittliche Last der letzten 1, 5 und 15 Minuten. Sie geben die Zahl der Aufgaben an, die den Prozessor nutzen oder darauf warten (einschließlich derer, die auf Festplatte oder Netzwerk warten), und werden zusammen mit der Zahl der Kerne bewertet:

nproc
  • Liegt der Load Average unter der Zahl der Kerne, hat der Server Luft.
  • Liegt er nahe an der Zahl der Kerne, arbeitet der Prozessor an der Kapazitätsgrenze.
  • Liegt er deutlich über der Zahl der Kerne, stehen Aufgaben in der Warteschlange; irgendwo gibt es einen Engpass.

Ist der 1-Minuten-Wert deutlich höher als der 15-Minuten-Wert, hat das Problem gerade erst begonnen; im umgekehrten Fall nimmt die Last ab.

Prozessor (CPU)

htop

htop zeigt live die Auslastung der Prozessorkerne, die Speichernutzung und die Prozesse mit dem höchsten Ressourcenverbrauch (falls nicht installiert: sudo apt install htop). Mit F6 ändern Sie die Sortierung und finden den Prozess mit der höchsten CPU-Last.

Worauf Sie achten sollten:

  • Ein einzelner Prozess lastet einen Kern zu 100 % aus: Gameserver und viele Anwendungen erledigen ihre Hauptarbeit auf einem einzigen Kern. Selbst wenn die Gesamtauslastung niedrig aussieht, wird die Anwendung langsam, sobald dieser Kern voll ist. In diesem Fall macht ein Prozessor mit hoher Single-Core-Leistung den Unterschied.
  • Alle Kerne sind voll: Der Server erledigt mehr Arbeit, als er bewältigen kann. Prüfen Sie, welche Prozesse die Last verursachen.
  • Unerwartete Prozesse: Ein unbekannter Prozess, der ständig CPU-Leistung verbraucht, kann ein Zeichen für einen kompromittierten Server sein (zum Beispiel Schadsoftware, die Kryptowährungen schürft).

Der Wert st (steal) in der Ausgabe von top zeigt bei einem virtuellen Server die Zeit, in der der Prozessor statt für Sie für andere Aufgaben gearbeitet hat und Sie warten mussten. Sehen Sie dauerhaft einen hohen Steal-Wert, wenden Sie sich an Ihren Anbieter.

Arbeitsspeicher (RAM) und Swap

free -h

Achten Sie in der Ausgabe von free auf die Spalte „available“. Da Linux freien Speicher als Festplattencache nutzt, ist ein niedriger Wert bei „free“ normal; der Speicher, den Ihre Anwendungen tatsächlich nutzen können, ist der Wert „available“.

Reicht der Speicher nicht aus, passieren zwei Dinge:

  1. Die Swap-Nutzung steigt. Da Swap auf der Festplatte liegt, ist er viel langsamer als RAM, und der Server wird spürbar träge.
  2. Der OOM Killer greift ein. Ist der Speicher vollständig belegt, beendet der Kernel zwangsweise einen Prozess, um das System am Laufen zu halten. Wenn sich Ihre Anwendung „von selbst“ beendet, ist das höchstwahrscheinlich der Grund:
    sudo dmesg -T | grep -i "killed process"
    

Swap-Datei hinzufügen: Auf kleinen Servern ohne Swap können Sie eine Swap-Datei anlegen, damit Anwendungen bei kurzen Speicherspitzen nicht beendet werden:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Swap ist ein Sicherheitsnetz, keine Lösung. Nutzt der Server ständig Swap, besteht die eigentliche Lösung darin, den Speicherverbrauch zu senken oder auf mehr RAM umzusteigen.

Festplatte

Füllstand: Eine volle Festplatte ist die Ursache der seltsamsten Fehler auf einem Server; die Datenbank kann nicht schreiben, Logs bleiben stehen, Anwendungen stürzen ab.

df -h
df -i
sudo du -sh /var/* | sort -h

df -h zeigt den Speicherplatz, df -i die Grenze für die Zahl der Dateien (Inodes); Millionen kleiner Dateien können die Inodes aufbrauchen, auch wenn die Festplatte leer aussieht. Der Befehl du hilft Ihnen, die Ordner zu finden, die den meisten Platz belegen; die häufigsten Übeltäter sind alte Logs, Backups und ungenutzte Docker-Images.

Geschwindigkeit und Wartezeit: Ist die Festplatte nicht voll, der Server aber trotzdem langsam, prüfen Sie die Wartezeiten der Festplatte:

sudo apt install sysstat
iostat -x 2

Liegt die Spalte %util dauerhaft nahe 100 und sind die await-Werte hoch, kommt die Festplatte nicht hinterher. Ein hoher Wert wa (iowait) in der Ausgabe von top zeigt dasselbe. Welcher Prozess die Festplatte belastet, sehen Sie mit sudo iotop. Typische Ursachen sind intensive Schreibvorgänge der Datenbank, große Backups und unbegrenzt wachsende Logdateien.

Netzwerk

Wenn die Ressourcen des Servers entspannt aussehen, die Nutzer aber Verzögerungen bemerken, kann das Problem im Netzwerk liegen:

  • Latenz und Paketverlust: Messen Sie mit mtr jeden Hop auf dem Weg zu einer Adresse in der Nähe Ihrer Nutzer. An welcher Stelle die Latenz steigt, erklären wir in unserem Artikel Was ist Ping?.
  • Bandbreitennutzung: Mit nload oder iftop sehen Sie den aktuellen Datenverkehr des Servers. Unerwartet hoher Datenverkehr kann ein Zeichen für einen Angriff oder ein großes Backup sein.
  • Anzahl der Verbindungen: ss -s zeigt die Gesamtzahl der Verbindungen. Eine ungewöhnlich hohe Zahl kann auf einen DDoS-Angriff hindeuten; die Angriffsarten erklären wir in unserem Artikel Was ist DDoS?.

Langsamkeit durch die Anwendung

Sehen alle Ressourcen normal aus, liegt das Problem höchstwahrscheinlich in der Anwendung selbst:

  • Prüfen Sie die Logs. journalctl -u dienstname -f oder die eigene Logdatei der Anwendung zeigt Fehler und Warnungen.
  • Langsame Datenbankabfragen: Aktivieren Sie das Slow Query Log von MariaDB und finden Sie heraus, welche Abfragen lange dauern; oft genügt ein fehlender Index als Lösung. Die Einstellungen erklären wir in unserer Anleitung MariaDB installieren.
  • Externe Dienste: Eine API oder ein Zahlungsdienst, der nicht antwortet, führt dazu, dass Seiten langsam laden, selbst wenn Ihr Server kaum ausgelastet ist.
  • Gameserver: Viele Plugins, große Welten und Server, die lange nicht neu gestartet wurden, verlängern die Tick-Dauer. Regelmäßige Neustarts erklären wir in unserer Anleitung Cronjob einrichten.
  • Websites: Bei fehlendem Caching und schweren Seiten werfen Sie einen Blick auf unsere Anleitung Website schneller machen.

Schnelle Fehlerdiagnose in der Übersicht

SymptomPrüfbefehlMögliche Lösung
Load Average über der Zahl der KernehtopVerursachenden Prozess finden und optimieren
Ein Kern dauerhaft bei 100 %htopAnwendung optimieren, schnellerer Prozessor
Anwendung beendet sich von selbstdmesg -TSpeicherverbrauch senken, RAM erhöhen
Swap wird ständig genutztfree -hRAM erhöhen
Festplatte volldf -h, du -shLogs und alte Backups aufräumen
Hoher iowaitiostat -x, iotopFestplattenintensive Aufgaben einplanen, schnellere Disk
Ressourcen normal, Nutzer bemerken Verzögerungmtr, ss -sNetzwerkpfad und mögliche Angriffe prüfen

Performance auf Nodesty-Servern

Die AMD Ryzen 9 9950X vServer von Nodesty eignen sich mit bis zu 5,7 GHz Single-Core-Takt für Gameserver und Anwendungen, die auf einem einzelnen Kern laufen, die AMD EPYC 7763 vServer mit viel RAM für Datenbanken und eine große Zahl von Diensten. Alle Pakete bieten NVMe-Speicher und L3–L7-DDoS-Schutz durch nShield. Die CPU-Nutzung auf virtuellen Servern unterliegt unserer Fair-Use-Richtlinie; reichen Ihre Ressourcen auch nach der Optimierung Ihrer Anwendung nicht aus, ist der Wechsel auf ein größeres Paket die schnellste Lösung.

Häufig gestellte Fragen

Ab welchem Load Average gibt es ein Problem?

Der Load Average wird immer zusammen mit der Zahl der Prozessorkerne des Servers bewertet. Auf einem Server mit 4 Kernen bedeutet ein Wert um 4, dass der Prozessor voll ausgelastet ist; deutlich höhere Werte zeigen, dass Aufgaben in der Warteschlange stehen. Die Zahl der Kerne ermitteln Sie mit dem Befehl nproc.

Meine RAM-Auslastung liegt bei 90 Prozent. Ist das ein Problem?

Meistens nicht. Linux nutzt freien Arbeitsspeicher als Festplattencache und gibt ihn bei Bedarf wieder frei. Die Spalte available in der Ausgabe von free -h zeigt, wie viel Speicher Ihren Anwendungen tatsächlich zur Verfügung steht. Problematisch wird es, wenn der Wert available sehr niedrig ist und die Swap-Nutzung ständig steigt.

Löst zusätzlicher Swap ein RAM-Problem?

Swap ist ein Sicherheitsnetz, das verhindert, dass Anwendungen beendet werden, wenn der Speicher kurzzeitig voll ist; da er auf der Festplatte liegt, ist er aber viel langsamer als RAM. Nutzt der Server ständig Swap, besteht die eigentliche Lösung darin, den Speicherverbrauch der Anwendung zu senken oder auf mehr RAM umzusteigen.

Warum beendet sich meine Anwendung von selbst?

Ist der Speicher vollständig belegt, beendet der Linux-Kernel einen der Prozesse mit dem höchsten Speicherverbrauch, um das System am Laufen zu halten; das nennt man OOM Killer. Der Befehl sudo dmesg -T | grep -i killed zeigt, welcher Prozess wann beendet wurde. Die Lösung ist, den Speicherverbrauch zu senken oder den RAM zu erhöhen.

Der Server ist langsam, aber die Ressourcenauslastung ist niedrig. Warum?

Das Problem kann im Netzwerk, auf der Festplatte oder außerhalb des Servers liegen. Prüfen Sie die Netzwerklatenz mit mtr und Wartezeiten der Festplatte mit iostat. Bei Websites führen auch eine langsame Datenbankabfrage oder ein externer Dienst, der nicht antwortet, dazu, dass Seiten langsam laden, obwohl der Server kaum ausgelastet ist.

Woran erkenne ich, dass ich ein größeres Paket brauche?

Wenn der Prozessor auch nach der Optimierung Ihrer Anwendung ständig stark ausgelastet ist, der verfügbare Speicher regelmäßig zur Neige geht und Swap genutzt wird oder die Festplatte ständig voll ist, reichen Ihre Ressourcen nicht aus. Dann ist der Wechsel auf ein Paket mit mehr Kernen, RAM oder Speicherplatz die schnellste Lösung.

Nodesty

Über den Autor

Nodesty-Team · Infrastruktur und Support

Das Nodesty-Team betreibt unsere Server, unser Netzwerk und unseren DDoS-Schutz im Alltag und beantwortet Support-Anfragen rund um die Uhr. Diese Ratgeber entstehen aus dieser Arbeit.

Verwandte Artikel

Starte deinen Server jetzt.

Erstellen, wachsen und skalieren Sie Ihre Projekte grenzenlos auf der Premium-Infrastruktur von Nodesty.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································