On Wed 2021-04-07 13:05:38 Stefan Hagen wrote:
> Wenn du unterhalb des Dateisystems arbeitest, also auf
> Blockgeraete direkt zugreifst und diese dumpst, dann ist das ein
> anderes Szenario. Hier "streamst" du Bits und Bytes die fuer den
> Kernel keine Dateien sind. Es sind Bits und Bytes ohne Semantik.
> Diese muessen auch kurzfristig ueber den Hauptspeicher wandern,
> koennen aber nicht wiedererkannt werden und haben daher keinen
> Caching-Effekt. Darum wird der Speicher direkt freigegeben, damit
> er wieder zum Datei-Caching verwendet werden kann.
Ich habe mich durch ein paar Tests davon ueberzeugt, dass auch die
semantikfreien Daten eines Blockgeraets gecacht werden! Allerdings
nur so lange, wie das Blockgeraet gemountet ist.
Wenn das Blockgeraet *nicht* gemountet ist, wird der Speicher zwar
ebenfalls mit buff/cache belegt (moderat unter Puppy-Linux) oder
zugeschuettet (bei meinem aktuellen System, so dass es kaum noch
nutzbar ist) aber nach Befehlsende ist der cache wieder weg.
Warum sich die Linux-Versionen im Grad der Belegung mit buff/cache
unterscheiden, ist noch unklar.
Man kann das erkennen, wenn man mit dd auf ein Blockgeraet
abwechselnd Zufallsdaten und Nullen schreibt, dann die
Lesegeschwindigkeit misst (aus dem Cache natuerlich viel schneller)
und mit less verifiziert, dass die schnellen Daten aus dem Cache
sich tatsaechlich geaendert haben, was der Fall war.
--
Viele Gruesse
Werner