On Tuesday 05 October 2004 11:48, Alexander Finger wrote:
> > 3. Datendurchsatz
> >
> > Tests haben gezeigt, dass der Durchsatz der RAM-Disk bei ca. 50 MB/s
> > liegt... das finde ich erstaunlich wenig. Ist aber identisch mit dem
> > Durchsatz einer Datei, die aus dem Cache gelesen wird.
>
> Wie kommst du denn auf diese Werte?
test ist eine 100 MB Datei.
Mein Test:
$ time dd if=test of=/dev/null
204800+0 records in
204800+0 records out
real 0m2.129s
user 0m0.718s
sys 0m1.407s
damit liest du in 512-Byte Blöcken, die Blockgröße des
Dateisystems ist AFAIK
unerheblich.
Dein Test:
$ time dd if=test of=/dev/null bs=1M
100+0 records in
100+0 records out
real 0m0.199s
user 0m0.001s
sys 0m0.198s
Wie Du siehst, ist es nicht ganz egal wie man auf die Dateien im
Dateisystem "zugreift". Normale Programme lesen mit der
Standard-Blocksize. Es ist diese Leistung, bzw. eben die Nicht-Leistung
die mich hier vor Probleme stellt.
Wie die reale Anwendung liest, siehst du mit
"strace -f trace=file program".
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.
Evtl kannst du auch mal ramfs probieren (das ist eine dynamische Ramdisk)
> 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
Pjah. Jetzt wissen wir schon mal, dass es gravierende Unterschiede
gibt,
abhängig davon mit welcher Blocksize gearbeitet wird. Nicht jede
Software ist selbst geschrieben, daher ist diese Tuning-Option
verschlossen. Noch dazu kann man ein RAM-Disk-Filesystem nicht mit einer
anderen Blocksize als 1K anlegen.
s.o. die Blockgröße des Dateisystems ist dabei
kaum von Bedeutung.
Häufig lesen Anwendungen ganze Dateien auf einmal, oder Blöcke von 4KB.
siehe "man 2 read"
Ich denke das Problem ist dein "Benchmark" und nicht die Ramdisk.
--
http://LinuxWiki.org/RonnyBuchmann