[LUGA] Mit freundlicher Unterstützung von:
Linux New Media AG

Mail Thread Index


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

Re: [luga] mmap() Frage



On Mar 07, 2007 at 0952 +0100, Ralf Schlatterbeck appeared and said:
> [...]
> Hmm, hast Du schonmal probiert, ob der Kernel nicht auch das ganze File
> im RAM (Cache) liegen hat, wenn Du das File mit read statt mmap liest?

Das habe ich nur mit mmap() unfreiwilligerweise ausprobiert. Am
heimischen PC mit 1 GB RAM war das kleinere 220 MB Testfile nach dem
ersten Durchlauf komplett im Speicher (was an dem Wert für „geparste”
Zeilen pro Sekunde ersichtlich war).

Ich denke auch, daß es einen Unterschied macht wie schnell die Daten
verarbeitet werden. Bei einem anderen Programm verwende ich auch mmap()
um Dateien zu lesen, die ich dann via TCP Stream wegschicke. Dabei ist
mir aufgefallen, daß im GkrellM die I/O-Werte für die Platte, auf der
das File lag, und für die Netzwerkkarte gleich waren. Das ist zwar ein
statistisches Einzelereignis, aber trotzdem sehr interessant.

> Wenn Du viel RAM hast, wird m.W. auch erstmal alles in Puffer gelegt,
> bevor der Kernel diese Puffer wieder entsorgt. D.h., es kann sein, dass
> Du hier versuchst, ein Problem zu beheben, das Du auch mit read hättest.

Das mag sein, nur tendiere ich eher zu Bernd Meinung, daß bei read() mit
eigenem Puffer der „memory pressure” für den Kernel VMM geringer ist.
Block und File Caches gibt's ja unabhängig von mmap() oder read().

Vielleicht fehlt dem Kern einfach nur ein bequemes Traffic Shaping für
mmap(). ;)

Viele Grüße,
René.

-- 
"From the delicate strands,
 between minds we weave our mesh:
 a blanket to warm the soul."
 --- Lady Deirdre Skye (SMAC) ---




powered by LINUX the choice of a gnu generation
linux user group austria;
Suche
Suche
Letzte Änderung:
webmaster@luga.at
September 2010