![Der schnellste Weg zum erneuten Verknüpfen eines Verzeichnisses](https://rvso.com/image/1252981/Der%20schnellste%20Weg%20zum%20erneuten%20Verkn%C3%BCpfen%20eines%20Verzeichnisses.png)
Ich verwende Gentoo Linux und verschiebe derzeit meine /usr/portage
(Portage-Datenbank, die Tausende kleiner Ebuild-Dateien enthält), /var/tmp/portage
(Portage-Kompilierungsverzeichnis) und /var/tmp/ccache
(Compiler-Cache-Verzeichnis) nach Reiserfs. Diese Verzeichnisse sind leistungsempfindlich und Tausende kleiner Dateien werden aufgerufen und geschrieben, wenn Portage Paketabhängigkeiten berechnet und Pakete kompiliert.
Was ist der schnellste Weg, die Verzeichnisse in das neue Dateisystem umzuleiten? Führt die Verwendung eines symbolischen Links zu einem enormen Leistungsverlust, da das System einen symbolischen Link als Text analysiert? Wäre „Mount Bind“ besser?
Antwort1
Mount --bind
sollte schneller sein als ein symbolischer Link.
Wenn Sie mount -B /mnt/portage /usr/portage
lesen, /usr/portage
erhalten Sie den i-Node /mnt/portage
und er sollte genauso schnell funktionieren wie ein normales Verzeichnis.
Die Geschwindigkeit beim Auflösen symbolischer Links hängt von der Anzahl der Komponenten im verknüpften Pfad ab. Für /usr/portage
die Verknüpfung /mnt/portage
sind daher drei zusätzliche I-Node-Lesevorgänge und zwei Verzeichnissuchvorgänge erforderlich.
Ich bezweifle, dass Sie einen Unterschied zwischen diesen Methoden bemerken werden, es sei denn, Sie verwenden diese Dateisysteme wirklich häufig.