Enterprise Hosting · Von Gamern für Gamer
Server laggt – CPU, RAM & Disk sofort prüfen
Dein Server reagiert langsam, Verbindungen hängen oder Dienste sind träge? Diese Anleitung hilft dir, die Ursache systematisch zu finden und zu beheben. Wir gehen Schritt für Schritt von den häufigsten zu den spezielleren Ursachen.
Hinweis: Detaillierte Unterseiten zu Monitoring und Optimierung findest du in der linken Navigation.
1. Aktuelle Auslastung prüfen
Der erste Blick sollte immer der aktuellen Server-Auslastung gelten. Verbinde dich per SSH und führe folgende Befehle aus:
htop – die wichtigste Anlaufstelle
htop
Hier siehst du CPU- und RAM-Nutzung in Echtzeit. Anders als das einfachere top zeigt htop farbige Balken und lässt sich mit der Maus bedienen. Achte auf:
- CPU-Auslastung: Die oberen Balken zeigen die Auslastung pro Kern. Liegt ein Kern dauerhaft bei 100% und die anderen sind fast leer, hast du ein Single-Thread-Problem – typisch für Gameserver wie Minecraft oder Arma 3. Sind alle Kerne gleichmäßig ausgelastet, läuft ein multi-threaded Prozess wie ein Webserver oder eine Datenbank am Limit
- RAM: Der farbige Balken oben zeigt die Speichernutzung. Grün = verwendet, Blau = Puffer, Gelb = Cache. Erst wenn der grüne Bereich an den rechten Rand stößt und Swap aktiv wird, hast du ein RAM-Problem
- Load Average: Die drei Zahlen oben rechts (z.B. 2.15 1.89 1.45) zeigen die durchschnittliche Last der letzten 1, 5 und 15 Minuten. Liegt der 1-Minuten-Wert höher als deine Kernanzahl, ist der Server überlastet. Liegt er weit darunter, ist die aktuelle Last nicht das Problem
- Swap: Wird Swap verwendet (zu sehen im oberen Bereich), fehlt RAM. Gelegentlicher Swap-Einsatz ist normal, dauerhafte Swap-Nutzung bremst den Server massiv aus
Prozesse sortieren und analysieren
In htop drückst du F6 und wählst PERCENT_CPU oder PERCENT_MEM zum Sortieren. Die obersten Prozesse sind die Verursacher. Häufige Übeltäter:
- mysqld / mariadbd: Eine einzelne Datenbank-Abfrage blockiert alles
- php-fpm: Ein defektes PHP-Script läuft in einer Endlosschleife
- java: Minecraft oder andere Java-Anwendungen mit zu wenig RAM
- fail2ban: Verarbeitet tausende Logeinträge gleichzeitig
2. Speicherplatz prüfen
Eine volle oder fast volle Festplatte kann den Server extrem verlangsamen. Prüfe mit:
df -h
Die Ausgabe zeigt alle Partitionen mit Größe, verwendetem und freiem Speicherplatz. Achte besonders auf:
- / (Root-Partition): Ist sie zu 90% oder mehr voll, wird es kritisch. Das System braucht Platz für temporäre Dateien und Logs
- /var: Hier liegen Logs, Datenbanken und Mail-Spooler. Diese Partition läuft oft als erste voll
- /tmp: Temporäre Dateien. Ein voller /tmp-Ordner kann dazu führen, dass Sessions nicht mehr gespeichert werden
Speicherfresser finden
du -sh /* 2>/dev/null | sort -rh | head -10
Zeigt die 10 größten Ordner im Root-Verzeichnis. Meist sind es:
- /var/log: Alte Logdateien, die nie rotiert wurden
- /home: Benutzerdaten, alte Backups
- /var/lib/docker: Docker-Images und Container-Daten
- /var/www: Websites mit vielen Medien-Uploads
Schnell aufräumen
# Alte Logs löschen (älter als 30 Tage)
find /var/log -type f -name "*.log" -mtime +30 -delete
# Journald-Logs auf 500 MB begrenzen
journalctl --vacuum-size=500M
# Docker aufräumen (ungennutzte Images, Container, Volumes)
docker system prune -af
# apt-Cache leeren (Debian/Ubuntu)
apt clean
3. Hohe CPU-Last – die häufigsten Ursachen
Ein einzelner Prozess als Verursacher
Mit htop sortierst du nach CPU-Nutzung. Steht ein Prozess weit oben mit 80-100%, ist das der Übeltäter. Häufige Szenarien:
- MySQL/MariaDB: Öffne die MySQL-Konsole und gib
SHOW FULL PROCESSLIST;ein. Du siehst alle laufenden Abfragen. Abfragen mit Zeit > 10 Sekunden sind verdächtig. MitEXPLAIN SELECT ...kannst du sie analysieren - PHP-FPM: Ein defektes Script kann eine Endlosschleife verursachen. Prüfe die PHP-FPM-Logs unter
/var/log/php*-fpm.logoder im Webserver-Error-Log - Webserver: Zu viele gleichzeitige Verbindungen. Prüfe mit
ss -tan state established | wc -ldie Anzahl aktiver Verbindungen
Viele kleine Prozesse
Drück in htop Shift+H um Threads auszublenden und nur Hauptprozesse zu sehen. Sind es hunderte ähnliche Prozesse (z.B. php-fpm Worker), liegt die Ursache oft in der Konfiguration. Reduziere die Anzahl der Worker in der jeweiligen Konfigurationsdatei.
Cronjobs als heimliche Bremsen
# Alle Cronjobs aller Benutzer anzeigen
for user in $(cut -f1 -d: /etc/passwd); do echo "=== $user ==="; crontab -u $user -l 2>/dev/null; done
Prüfe ob mehrere Cronjobs zur gleichen Minute starten und sich gegenseitig blockieren. Verteile sie zeitlich mit Minuten-Abständen.
4. Hohe RAM-Nutzung – was tun?
RAM-Verbraucher identifizieren
# Top 10 Prozesse nach RAM sortiert
ps aux --sort=-%mem | head -11
Cache vs. echte Nutzung verstehen
Linux nutzt freien RAM als Disk-Cache. Das ist normal und erwünscht. Erst wenn der "available"-Wert in free -h gegen Null geht, hast du ein echtes RAM-Problem. Beispiel:
$ free -h
total used free shared buff/cache available
Mem: 15Gi 8,2Gi 1,3Gi 234Mi 6,1Gi 6,8Gi
Hier sind 6,8 GB verfügbar – obwohl "used" 8,2 GB zeigt. Der Server hat kein RAM-Problem.
Swap-Nutzung analysieren
Wird Swap verwendet, fehlt RAM:
# Swap-Nutzung in Echtzeit sehen
watch -n 1 free -h
# Welcher Prozess nutzt wie viel Swap?
for file in /proc/*/status ; do
awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file
done | grep -v " 0 kB" | sort -k 2 -n -r | head -10
RAM freigeben (falls nötig)
# Caches leeren (nur temporär – füllen sich wieder auf)
sync && echo 3 > /proc/sys/vm/drop_caches
Wichtig: Das ist nur eine Notlösung. Die Caches helfen dem System, schneller zu sein. Langfristig brauchst du mehr RAM.
5. I/O-Wait – wenn die Festplatte bremst
Zeigt htop hohe Werte unter "wa" (I/O-Wait), wartet die CPU auf die Festplatte. Installiere iotop für die Analyse:
iotop -o
Zeigt nur Prozesse, die tatsächlich I/O verursachen. Häufige Ursachen:
- Backup läuft gerade: rsync, tar oder mysqldump schreiben große Datenmengen
- Datenbank-Schreibvorgänge: Viele INSERT/UPDATE-Befehle gleichzeitig
- Defekte Festplatte: Prüfen mit
smartctl -a /dev/sda - Kein SSD-Speicher: HDDs haben hohe Zugriffszeiten. Ein Upgrade auf NVMe SSD bringt oft Faktor 10+ Verbesserung
6. Netzwerk-Probleme erkennen
Latenz und Paketverlust
ping -c 100 google.com
Am Ende siehst du die Statistik. Paketverlust über 1% oder schwankende Latenzen deuten auf Netzwerkprobleme hin.
Netzwerkpfad analysieren mit mtr
mtr google.com
mtr kombiniert ping und traceroute in Echtzeit. Du siehst jeden Hop zwischen dir und dem Ziel mit Latenz und Paketverlust. Ein einzelner Hop mit hohem Verlust ist oft das Problem.
Bandbreiten-Nutzung in Echtzeit
iftop -i eth0
Zeigt welche Verbindungen wie viel Bandbreite nutzen. Nützlich um zu sehen ob ein einzelner Client den Server flutet.
7. DDoS-Angriff als Ursache?
Verdächtige Verbindungen erkennen
# Top 20 IPs nach Anzahl Verbindungen
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20
Viele Verbindungen von einer einzigen IP (besonders auf einem einzelnen Port) sind ein starkes Indiz für einen Angriff.
SYN-Flood erkennen
netstat -ant | grep SYN_RECV | wc -l
Hunderte oder tausende SYN_RECV-Verbindungen deuten auf einen SYN-Flood-Angriff hin. Bei NexoraHost greift in diesem Fall automatisch der Arbor-DDoS-Schutz – du musst nichts tun.
8. V-Server spezifisch: Überbuchung spürbar?
Bei V-Servern teilst du dir den Host mit anderen Nutzern. Deren Last kann deine Performance beeinflussen. Anzeichen:
- Performance schwankt stark ohne erkennbaren eigenen Verursacher
- Zu bestimmten Tageszeiten regelmäßig langsamer
- CPU-"Steal"-Wert in htop oder top: Zeigt an, wie viel CPU-Zeit der Hypervisor anderen Servern zuweist. Dauerhaft über 5-10% ist problematisch
Lösung: Upgrade auf einen Rootserver mit dedizierten Ressourcen. Da gehört die gesamte Hardware-Leistung nur dir.
9. Dauerhafte Performance-Überwachung einrichten
Damit du Probleme frühzeitig erkennst:
# Netdata installieren (leichtgewichtiges Monitoring)
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Netdata läuft auf Port 19999 und zeigt detaillierte Graphen zu CPU, RAM, I/O, Netzwerk und vielem mehr. Ideal um Muster über Tage und Wochen zu erkennen.
10. Schnell-Checkliste von oben nach unten
- htop: CPU, RAM, Load Average, Swap prüfen
- df -h: Speicherplatz kontrollieren, ggf. aufräumen
- MySQL SHOW FULL PROCESSLIST: Langsame Queries identifizieren
- iotop: Festplatten-I/O analysieren
- mtr: Netzwerkpfad testen
- netstat: Verdächtige Verbindungen prüfen
- Cronjobs: Zeitliche Überschneidungen finden
- Nicht genutzte Dienste: Stoppen und deaktivieren
- Logs: Alte Logs löschen, Rotation einrichten
- V-Server: CPU-Steal prüfen, ggf. auf Rootserver upgraden
Ausführliche Anleitungen zu jedem Punkt findest du in den Artikeln der linken Navigation. Bei anhaltenden Problemen kontaktiere unseren Support über das Kundenpanel.
Siehe auch: Server-Monitoring · Root Server tunen · Pterodactyl optimieren · Gameserver Hub
NexoraHost
Root & VPS Server
Ryzen-Power im Maincubes FRA01 – voller Root-Zugriff, NVMe, DDoS-Schutz inklusive.
nexorahost.com · Maincubes FRA01 · 1 Tbit/s DDoS · 99,9 % Uptime