GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Auf großen Dateisystemen läuft fsck nicht mehr genügend Arbeitsspeicher

Lösung 1:

Ein 64-Bit-Kernel und große Mengen an RAM ermöglichen es dem fsck, schön und schnell fertig zu werden. Alternativ gibt es jetzt eine Option in e2fsck, die es anweist, alle Zwischenergebnisse in einem Verzeichnis statt im RAM zu speichern, was immens hilft. Erstellen Sie /etc/e2fsck.conf mit folgendem Inhalt:

[scratch_files]
directory = /var/cache/e2fsck

(Und stellen Sie natürlich sicher, dass dieses Verzeichnis existiert und sich auf einer Partition mit ein paar GB freiem Speicherplatz befindet). e2fsck wird SLLOOOOWWWWWWW ausführen, aber zumindest vollständig.

Natürlich funktioniert dies nicht mit dem Root-FS, aber wenn Sie einen Swap haben, müssen Sie den Root-FS sowieso nicht mehr mounten.

Lösung 2:

Am Ende versuchte ich, was Womble vorschlug; Hier sind einige weitere Details, die nützlich sein können, wenn Sie wie ich diese neue Funktionalität in e2fsck noch nie zuvor gesehen haben.

Die Konfigurationsoption „scratch_files“ für e2fsck wurde irgendwann im Zeitraum der Version 1.40.x verfügbar. (In unserem Fall mussten wir auf die neueste Debian-Distribution aktualisieren, um diese Funktionalität zu erhalten.)

Neben der vorgeschlagenen Option "directory =/var/cache/e2fsk" gibt es einige weitere Konfigurationsoptionen, um die Verwendung des Scratch-Dateispeichers zu optimieren. Ich habe "dirinfo =false" verwendet, da das Dateisystem eine große Anzahl von Dateien, aber nicht so viele Verzeichnisse hatte. Wenn die Situation umgekehrt wäre, wäre die Option "icount" angemessen. Diese Optionen wurden alle in der Manpage für e2fsck.conf dokumentiert.

Übrigens, Ted T'so hat in diesem Thread über diese Optionen geschrieben.

Ich stellte fest, dass e2fsck extrem langsam lief, viel mehr als von Ted vorhergesagt. Es lief die meiste Zeit mit 99,9 % CPU-Auslastung (auf einem extrem langsamen alten Prozessor), was darauf hindeutet, dass das Speichern dieser Datenstrukturen auf der Festplatte statt im Arbeitsspeicher nicht die Hauptursache für die Verlangsamung war. Es könnte sein, dass etwas anderes an dem, was im Dateisystem gespeichert wurde, e2fsck besonders langsam gemacht hat. Am Ende habe ich die Dateisystemprüfung vorerst aufgegeben; Das Dateisystem sollte überprüft werden, hatte aber keine Fehler (soweit ich weiß), also werde ich es zu einem günstigeren Zeitpunkt überprüfen, wenn wir uns einen einwöchigen Ausfall leisten können.


Linux
  1. So finden Sie die am häufigsten ausgeführten Prozesse nach Speicher- und CPU-Auslastung

  2. Linux – System hängt, wenn der Speicher ausgeht?

  3. Ausführen von Reparaturen auf XFS-Dateisystemen

  4. Das Ausführen von 'gcc' auf einer C++-Quelldatei unter Linux gibt cc1plus:out of memory allocating ... Fehlermeldung

  5. Ist es möglich, unter Linux eine große Menge an virtuellem Speicher zuzuweisen?

So finden Sie heraus, welche Version des Linux-Kernels auf Ihrem PC läuft

So finden Sie die Top 10 der laufenden Prozesse nach Speicher- und CPU-Auslastung

So finden Sie die am häufigsten ausgeführten Prozesse nach Speichernutzung

UNERWARTETE INKONSISTENZ; fsck MANUELL AUSFÜHREN

Wie finde ich heraus, welche Version von Linux ich verwende?

Das System hängt, wenn der Speicher knapp wird