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