Zum Hauptinhalt springen
Zurück zur Kategorie

Langsame Disk-I/O erkennen und beheben

Erkennen und Beheben von langsamen Disk-I/O-Problemen auf Linux-Servern mit iotop, iostat und Optimierungstechniken.

Lesezeit: 14 min Fehlerbehebung
diskI/Oiotopiostatperformancelinuxspeicher

Inhaltsverzeichnis

Einführung

Langsame Disk-I/O ist ein häufiges Problem, das die Serverleistung erheblich beeinträchtigt. Datenbankabfragen verlangsamen sich, Webanwendungen reagieren nicht mehr und das System fühlt sich insgesamt träge an. Diese Anleitung zeigt, wie Sie langsame Disk-I/O erkennen und beheben.

Symptome

Typische Anzeichen für langsame Disk-I/O:

  • Befehle hängen lange (besonders ls, find, Datei lesen/schreiben)
  • Datenbankabfragen viel langsamer als normal
  • Hoher wa (I/O-Wait) Wert in top oder htop
  • Timeout-Fehler in Anwendungsprotokollen

Schritt 1: I/O-Wait prüfen

hljs bash
# I/O-Wait mit top prüfen
top
# 'wa'-Spalte beachten — über 5% deutet auf ein Problem hin

# Sofortiger I/O-Status mit vmstat
vmstat 1 10

# Disk-Statistiken mit iostat
iostat -x 1 5
# %util über 80% bedeutet, die Disk ist gesättigt

Schritt 2: Welcher Prozess nutzt die Disk?

hljs bash
# Echtzeit-Disk-I/O-Überwachung mit iotop
sudo apt install iotop -y
sudo iotop -o

# Prozess-I/O mit pidstat
sudo apt install sysstat -y
pidstat -d 1 5

Schritt 3: Disk-Leistungstest

hljs bash
# Einfacher Schreibtest
dd if=/dev/zero of=/tmp/test_write bs=1M count=1024 oflag=direct

# Umfassender Test mit fio
sudo apt install fio -y
fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread \
    --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 \
    --group_reporting --filename=/tmp/fio_test

rm /tmp/fio_test /tmp/test_write

Schritt 4: Disk-Gesundheitsprüfung

hljs bash
# SMART-Status
sudo apt install smartmontools -y
sudo smartctl -a /dev/sda

# Disk-Fehler
dmesg | grep -i -E '(error|fail|bad|ata|scsi|disk)'

Wenn Reallocated_Sector_Ct oder Pending_Sector_Count größer als 0 ist, ist die Disk am Ausfallen. Sofort sichern.

Schritt 5: Dateisystem-Optimierung

hljs bash
# Festplattennutzung
df -h

# Protokolle bereinigen
sudo journalctl --vacuum-size=500M

# noatime in /etc/fstab hinzufügen
# UUID=xxx / ext4 defaults,noatime 0 1

# I/O-Scheduler für SSD
echo 'none' | sudo tee /sys/block/sda/queue/scheduler

Schritt 6: tmpfs zur I/O-Reduzierung

hljs bash
# tmpfs für /tmp
echo 'tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=2G 0 0' | sudo tee -a /etc/fstab
sudo mount -a

Fazit

Um langsame Disk-I/O zu beheben, identifizieren Sie zunächst mit iotop und iostat, welcher Prozess die Disk belastet, und prüfen Sie dann den Disk-Zustand mit SMART. Dateisystem-Optimierungen (noatime, I/O-Scheduler) und tmpfs können die Leistung erheblich verbessern. Bei physischen Disk-Fehlern sichern Sie sofort und kontaktieren Sie den REXE-Support.