[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Linux-Speicherverwaltung


Werner Holtfreter wrote:
> 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.

Das ist fuer mich nicht nachvollziehbar. Das bedeutet allerdings nicht,
dass ich dir nicht glaube. Speichermanagement ist ein komplexes Thema.

Ich fuerchte allerdings, dass keiner von den Kernelentwicklern auf die
komische Idee kam ein gemountetes Geraet zu dd'en. Das ist naemlich ein
wunderbarer Weg sich in den Fuss zu schieÃ?en.

Wenn da wirklich was gecached wird, halte ich das fuer einen ungewollten
Nebeneffekt. Das koennte man mal auf der LKML erfragen.

> 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.

Linux Kernel Version und Konfiguration. Speichermanagement ist komplex
und hat viele Stellschrauben.

> 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.

Diskussionen auf diesem Level lassen sich eigentlich nur fuehren, wenn du 
deine Tests in ein Script packst und dieses hier mitschickst. Auf diese 
Art lassen sich Fehlinterpretationen ausschliessen.

Viele Gruesse,
Stefan

-- 
STEFAN HAGEN // GPG 0x52BE43BA
CONTACT: finger(1) finger@xxxxxxxxxxx