RAM Disk - Datendurchsatz unter Linux

Alexander Finger finger at fotofinder.net
Wed Oct 6 09:57:33 UTC 2004


Hallo,

On Tue, 2004-10-05 at 20:55, Ronny Buchmann wrote:
[...]
> damit liest du in 512-Byte Blöcken, die Blockgröße des Dateisystems ist AFAIK 
> unerheblich.

Aber es ist nicht unerheblich mit welcher Blockgröße die Application
liest... das ist klar.

[...]
> Wie die reale Anwendung liest, siehst du mit "strace -f trace=file program".

Danke für den Tip! Jetzt bin ich schlauer, scheint als hätte "man" sich
auf 4K geeinigt.

> 
> > Vielleicht ist auch die Wahl des Dateisystem nicht unerheblich...
> > Beispielen folgend habe ich mich für ext2 entschieden... gibt es eine
> > Alternative?
> Ich denke das ist für diesen Fall das Sinnvollste.

Du denkst ext2 ist das sinnvollste? Ja, dachte ich auch... nur scheint
der FS Huddel beim lesen und schreiben nicht unerheblich zu sein, daher
die "miese" Performance... ich meine, wir sprechen hier von 400 MHz DDR
RAM... auf einer Dual P4 Maschine... mit allen Schnickschnack den man
sich denken kann... da sollte eine RAM-Disk Performance von einigen
hundert Megabyte doch nun wirklich nicht das Problem sein.

> Evtl kannst du auch mal ramfs probieren (das ist eine dynamische Ramdisk)

Jups, werde ich.

> 
> > > In einem lurzen Test erhalte ich ein deutlich anderes Ergebnis:
> > > [ronny at bserv tmp]$ time dd of=/dev/zero if=test bs=1M count=100
> > > 100+0 Records ein
> > > 100+0 Records aus
> > >
> > > real    0m1.094s
> > > user    0m0.000s
> > > sys     0m0.260s
> das ist übrigens von Platte

einfach mal cat zu nehmen wäre ja auch zu simpel gewesen... cat und
unsere Anwendung verwenden die gleiche Blockgröße beim lesen der Daten.

$ time cat test.bin > /dev/null
 
real    0m6.672s
user    0m0.877s
sys     0m5.694s

Die Datei test ist 1 GB gross. Insofern ist die Performance nicht so
schlect wie anfänglich erwartet / befürchtet.

Es bleibt nur die Frage: Wieso ist die Performance der RAM-Disk
insgesamt so weit hinter dem möglichen Datendurchsatz zurück? Ich hätte
intuitiv mit 200 bis 400 MB/s gerechnet... und nicht mit 100 bis 150
MB/s (mehrere Tests). Das Ergebnis entspricht einfach nicht den
Erwartungen, zumal hdparm bei den Buffer-Cache Reads im
Produktionsbetrieb (auf dem Server ist recht viel los) folgendes
ermittelt:

Timing buffer-cache reads:   2220 MB in  2.00 seconds = 1110.72 MB/sec

Also... warum ist die RAM-Disk so langsam?

> Häufig lesen Anwendungen ganze Dateien auf einmal, oder Blöcke von 4KB.
> siehe "man 2 read"

Danke! Der Hinweis auf strace und die "man 2 read" waren sehr hilfreich.

> 
> Ich denke das Problem ist dein "Benchmark" und nicht die Ramdisk.

Und davon bin ich noch nicht überzeugt... :-) Mir ist die RAM-Disk noch
zu langsam, auch wenn sich das Bild etwas korrigiert hat. Warum kann man
der 1 GB/s nicht nahe kommen... Speicher und alles andere wären dazu
locker fähig... ist etwa ext2 / ext3 wegen dem Overhead die Bremse?

Wie oben erwähnt, Test mit ramfs folgt.


Dank und Grüße,

Alexander

-- 
FOTOFINDER GMBH			GF: Ali Paczensky / USt-IdNr. DE812854514
Software-Entwicklung		Web:	http://www.fotofinder.net/
Potsdamer Str. 96		Tel:	+49 30 59 00 69 77
10785 Berlin			Fax:	+49 30 59 00 69 59






More information about the Fedora-de-list mailing list