Laut diesem Artikel auf Facebooks Haystack:
" Aufgrund der Art und Weise, wie die NAS-Appliances Verzeichnismetadaten verwalten, war das Platzieren von Tausenden von Dateien in einem Verzeichnis äußerst ineffizient, da die Blockmap des Verzeichnisses zu groß war, um von der Appliance effektiv zwischengespeichert zu werden. Folglich wurden häufig mehr als 10 Festplattenvorgänge zum Abrufen von Dateien ausgeführt." Einzelbild. Nachdem die Verzeichnisgröße auf Hunderte von Bildern pro Verzeichnis reduziert wurde, würde das resultierende System im Allgemeinen immer noch drei Festplattenoperationen zum Abrufen eines Bildes ausführen: eine zum Lesen der Verzeichnismetadaten in den Speicher, eine zweite zum Laden des Inodes in den Speicher und eine dritte um den Inhalt der Datei zu lesen. "
Ich hatte angenommen, dass die Metadaten und der Inode des Dateisystemverzeichnisses vom Betriebssystem immer im RAM zwischengespeichert werden und für das Lesen einer Datei normalerweise nur 1 Festplatten-E / A erforderlich ist.
Ist dieses Problem "E / A mit mehreren Festplatten zum Lesen einer einzelnen Datei" in diesem Dokument nur für NAS-Appliances beschrieben, oder hat Linux auch das gleiche Problem?
Ich plane, einen Linux-Server zum Bereitstellen von Images auszuführen. Wie kann ich die Anzahl der Festplatten-E / A minimieren? Idealerweise sicherstellen, dass das Betriebssystem alle Verzeichnis- und Inode-Daten im RAM zwischenspeichert und für jede gelesene Datei nur nicht mehr als 1 Festplatten-E / A erforderlich ist.