Mein Verständnis ist, dassfadvise
teilt dem System mit, dass die angegebenen Dateien im Dateisystem-Cache (RAM) gespeichert werden sollen.
Welchen Zweck hat das Mounten eines Verzeichnisses auf einer RAM-Disk, wenn Sie nur fadvise --willneed
das Verzeichnis haben können?
Antwort1
Lass uns lesendie Manualpage für den zugrundeliegenden Bibliotheksaufruf:
Mithilfe von posix_fadvise() können Programme die Absicht ankündigen, künftig auf Dateidaten nach einem bestimmten Muster zuzugreifen. Auf diese Weise kann der Kernel entsprechende Optimierungen durchführen.
DerBeratunggilt für eine (nicht notwendigerweise existierende) Region beginnend beiVersatzund Verlängerung fürlenBytes (oder bis zum Ende der Datei, wennlenist 0) innerhalb der Datei, auf die verwiesen wirdfd.DerBeratungist nicht bindend, sondern stellt lediglich eine Erwartung seitens der Anwendung dar.
(Betonung hinzugefügt.)
Alles auf einer RAM-Disk befindet sich konstruktionsbedingt garantiert im RAM (obwohl tmpfs ausgelagert werden können). Aber fadvise ist lediglich ein Hinweis; der Kernel ist nicht verpflichtet, die Daten vorab in den RAM zu laden oder sie immer im RAM zu behalten.