Schreibgeschwindigkeit FreeBSD vs Linux

worel

Well-Known Member
Hallo!

Ich habe per dd if=/dev/zero of=/tmp/testfile bs=512K count=500 die Schreibgeschwindigkeit eines FreeBSD 6.3 mit der eines Debian Etch verglichen.

Hardware ist ident. Hintergrundprozesse sind "nicht vorhanden", beides sind saubere Minimalinstallationen.

Ergebnis Debian (ext3):
500+0 Datensätze ein
500+0 Datensätze aus
262144000 Bytes (262 MB) kopiert, 1,02908 Sekunden, 255 MB/s

Ergebnis FreeBSD (UFS2):
500+0 records in
500+0 records out
262144000 bytes transferred in 3.120420 secs (84009198 bytes/sec)

Wenns ein paar MB wären, wärs mir ja wurscht. Aber das?

Ich habe zwar eine leicht andere Partitionierung, auch die Größe der Part. ist unterschiedlich.

Das einzige was ich mir jetzt noch vorstellen kann ist, dass die Virtualisierung von VMWare für FreeBSD im Vergleich zu Linux performancetechnisch ein Witz ist.
Leider habe ich keinen physikalischen Server sondern nutze eben VMware dafür.

Abgesehen davon:
Hat jemand schon mal verglichen? :D
 
> Leider habe ich keinen physikalischen Server sondern nutze eben VMware dafür.

Hast Du bei beiden identische Controller konfiguriert?
Hast Du die VMware Images in einem Dateisysteme _ohne_ Journal abgelegt?
Hast Du die VMware Images als Typ3 (Pre-Allocated, Splitted) konfiguriert?

Ansonsten bringt das so nämlich gar nix.

So long...

Der Indy, VMware- und FreeBSD-Nutzer seit '00
 
Beide Maschinen kämpfen von den genannten Punkten mit denselben Waffen.

Da der Unterschied so extrem ist, gehe ich davon aus dass es wirklich am Hypervisor liegt. Also VMWare. Bei Zeiten werde ich das Ganze mal auf einer physikalischen Kiste probieren! Dann ist wirklich alles gleich...
 
Hi,


0. Was für ein bescheidener (beschi..) vergleich: Schreibgeschwindigkeit FreeBSD vs Linux

1. Wenn, dann ist das ein ext3 gegen ufs dateisystem vergleich mit basis linux und freebsd.
1.1 Du kannst nicht (so) einfach ext3 mit ufs als Filesystem so vergleichen.
1.2 Kannst du /dev/zero auch nicht hernehmen als quelle, nimm /dev/random,urandom

2. Vmware als Base kannst du auch nicht machen
2.1 ich vermute, beide images laufen auf einem Server ?
2.2 Wenn ja, auch scheiße zwecks Ressourcen Verteilung bei Vmware

Wenn Du einen richtigen Vergleich machen willst dann:

1. nimm 2 gleiche Systeme mit exact gleicher Hardware (cpu, ram, controler, hdd, ...)
2. Partitioniere / Slice'e beide Systeme gleich
2.1 Mach pro System 2 Parts (1 x ext3 formated, 1 x ufs formated)
2.1.1 unter freebsd brauchst du dann das e2fsprogs package um ext3 Partitonen zu lesen / schreiben
3. Installiere beide Systeme (linux und freebsd) und patche beide System auf den neusten stand. (kernel + userland)
4. Benutze mehrere Programme für den Vergleich: bonnie, ...

So. Es gibt noch weitere Punkte die man natürlich beachten sollte, aber für deinen Vergleich den du machen willst reicht es :-)

Viel Spass, und wir sind auf den Report gespannt :-)
 
1.2 Kannst du /dev/zero auch nicht hernehmen als quelle, nimm /dev/random,urandom
Käse, wenn man Schreibgeschwindigkeit testen will ist /dev/zero genau richtig. Bei /dev/u?random spielen die unterschiedlich effizienten und sicheren (Gegensätze!) Randomizer mit rein. Genau so eine Störung will man doch vermeiden.
 
Warum 2 Systeme... einfach nacheinander auf einem testen.

Ausserdem muss man ja kein Filesystem benutzen einfach direkt aufs Blockdevice schreiben.

Die Position auf der Festplatte spielt auch eine Rolle, denn Daten die am Anfang der Festplatte liegen können schneller gelesen werden, weil die Geschwindigkeit der Scheiben da am größten ist (mehr Weg bei einer Umdrehung).

Die Unterschiede von UFS und ext2/3 sind hoffentlich nicht so groß, dass sie 170M/s ausmachen.
 
Warum 2 Systeme... einfach nacheinander auf einem testen.

Ausserdem muss man ja kein Filesystem benutzen einfach direkt aufs Blockdevice schreiben.

Die Position auf der Festplatte spielt auch eine Rolle, denn Daten die am Anfang der Festplatte liegen können schneller gelesen werden, weil die Geschwindigkeit der Scheiben da am größten ist (mehr Weg bei einer Umdrehung).

Die Unterschiede von UFS und ext2/3 sind hoffentlich nicht so groß, dass sie 170M/s ausmachen.

Also wenn ich mich jetzt nich irre ist die Wegstrecke die du pro Umdrehung hast ganz aussen am größten. Demnach ist auch ganz Aussen auch die Geschwindigkeit am höchsten.
Gruß ShitHappens
 
An der Stelle möchte ich anmerken, dass "dd" nicht zu den optimiertesten Anwendungsfällen von FreeBSD gehört. Es wird hier eine Sonderform von Schreiboperationen verwendet, die die Entwickler in etwas fernerer Zukunft erst optimieren wollen.

Ein Geschwindigkeitsvergleich mit "dd" ist daher Unsinn.
 
Ich verstehe nicht ganz warum der Vergleich ext3 gegen ufs nicht objektiv sein soll?

Mit Debian bzw. Linux werd ich ext3 nehmen -> ausgereift.
Mit FreeBSD dann halt UFS2 -> das stabile pendant bei BSD
D.h. dass ich natürlich das im Produktivbetrieb einsetzen werde, was mir der jeweilige Hersteller ans Herz legt. Und wenn tatsächlich eine Plattform 3 mal so schnell sein soll wie die andere, dann würde was falsch laufen.

Ok, als Testplattform ist vmware wohl nicht das richtige. Aber ein Unterschied von 170MB/S sind eindeutig zu viel. Auch wenn die Virtualisierung reinspuckt. Aber das wäre dann ein Problem von vmware.

Ich werde irgendwoher eine physikalische Maschine auftreiben. Am besten einen DL385 oä. Dann wird nochmal gemessen ;-)

So viel zum Spielen, so wenig Zeit :cool:

Edit: wenn dd Unsinn ist da die Implementierung nicht so toll ist, welches Tool würde fair vergleichen?
 
Also ich weiß auch nicht ob ein dd wirklich aussagekräftig ist. Das ist eher ein theoretischer Spitzenwert den man dann erreichen kann durch alle möglichen Tricks. Wenn es praxisorientiert sein soll, dann würde ich zu bonnie greifen. ;)
 
lol
262144000 Bytes (262 MB) kopiert, 1,02908 Sekunden, 255 MB/s

Klar - wenn ich das Testfile nur klein genug waehle passt alles super in den Hauptspeicher...
Teste doch mal mit dem 10-fachen des installierten RAM und die Sache sieht schon ganz anders aus. Dann moeglicherweise noch "async" mounten um aehnlich absurde Eigenschaften des FS wie Linux zu emulieren...
 
Deswegen müssen für beide systeme faire Instruktionen her.

Das mit dem Testfile welches in den Ram passt stimmt wohl; aber FreeBSD hätte es ja genausoschnell schaffen können? :eek:

Wurscht, solange ich keinen Test auf wirklich identen Systemen gemacht habe ist jede weitere Spekulation für die Nüsse.

Um das klarzustellen: Ich mag FreeBSD. Mir geht es darum eine Erklärung zu finden, warum ein so krasser Unterschied rauskam.
Das hat mich jetzt natürlich angestachelt in der Hinsicht weiter zu machen und weiter zu vergleichen.
Und ein bisschen Spaß an der Freude wird ja wohl auch erlaubt sein.
 
Naja, wäre gut zu wissen welche art Festplattenverbund unter VMware sitzt... ein 4-Festplatten-Raid0 oder nen 5-Festplatten-HardwareController-Raid5 ? Denn 255MB/s sind mit einer Platte nicht zu bewerkstelligen, auch nicht mit zweien. Wenn nur eine Platte benutzt wird steht die Sache fest... Linux mogelt, denn heutige HDDs kommen ca. auf 80-90MB/s am besagten Plattenanfang (ja, Festplatten fangen außen an).
 
Der Wirt stellt ein Raid5 mit 5 SCSI Platten zur Verfügung.
Weiß jetzt nicht ob 10 oder 15k, das Zeug steht weit weg im Rechenzentrum ;-)
 
Vielleicht noch als Tipp, sobald für worel denn endlich ein Testsystem steht (und noch nicht dran gedacht wurde ;)):

Nimm ruhig den Test mit der 262MB großen Testdatei mit rein. Nur weil die kleiner ist als der, zur Verfügung stehende, RAM heißt das noch lange nicht, dass das Ergebnis nichts taugt. Aber dann sollte dazu noch ein Test mit einer Datei > RAM gemacht werden. So kann man sicher auch bessere Vergleiche ziehen.
Höchstwahrscheinlich wären sogar mehr als zwei Tests praktisch.
1.) Mehrere kleine (im täglichen Gebrauch vorkommende) Dateien
2.) RAM/4 < Datei <= RAM/2
3.) RAM/2 < Datei <= RAM
4.) RAM < Datei || Datei = n * RAM

Genauso kann man auch, wie schon bofh-hannibal gesagt hat, 2 Partitionen nehmen und dann die Testkombinationen auswerten. :)
 
Es ist soweit!

Ich werde die nächsten Tage Debian Etch gegen FreeBSD 6.3 in der jeweiligen Minimalinstallation gegeneinander antreten lassen. (FreeBSD wird nach Release folgen, einmal mit 4BSD und einmal mit ULE)

Leider habe ich bisher keinen Testserver auftreiben können, so muss folgender PC herhalten:

Intel Q6600 Quad Core
4GB DDR2 800 Ram
Asus Commando Mainboard
SATA 300 GB 7.2k HDD

Würde mich freuen wenn einige von euch mir Vorschläge geben könnten wie man jetzt konkret und halbwegs fair vergleichen kann (bonnie, dd, etc.)
Falls jemand einen konkreten Wunsch hat, wird dieser auch (wenn nicht allzu langwierig) durchgeführt.
 
Ich benutze das tool pv, da hat man ne livedurchsatzanzeige.

pv -pterb /dev/zero > /root/testfile.muell

Ich weis nicht inwieweit das objektiv ist, aber schön anzuschauen.
 
Also wenn ich mich jetzt nich irre ist die Wegstrecke die du pro Umdrehung hast ganz aussen am größten. Demnach ist auch ganz Aussen auch die Geschwindigkeit am höchsten.
Gruß ShitHappens

Physikalisch gesehen hast du recht. Wenn man die Geschwindigkeit außen und innen messen würde, ist außen schneller, allerdings nur geringfügig. Die Lese-/Schreibgeschwindigkeit ist aber innen schneller, ganz einfach deshalb, weil der Weg einer Umdrehung kürzer ist. Wenn Daten abgesucht werden müssen, die außen liegen, muss eine längere Wegstrecke zurück gelegt werden, als wenn sie innen liegen.
 
Wenn man die Geschwindigkeit außen und innen messen würde, ist außen schneller, allerdings nur geringfügig.

Über diese Geringfügigkeit lässt sich streiten. Zuerst mal ist das ganze vom Radius abhängig, und beim Radius einer Festplatte kann man meiner Meinung nach NICHT von geringfügig sprechen.

Die Lese-/Schreibgeschwindigkeit ist aber innen schneller, ganz einfach deshalb, weil der Weg einer Umdrehung kürzer ist. Wenn Daten abgesucht werden müssen, die außen liegen, muss eine längere Wegstrecke zurück gelegt werden, als wenn sie innen liegen.

Bist du dir da ganz sicher? Bei meinen Festplatten scheint das irgendwie anders zu sein....
 
Nach 2*pi*r für den Umfang des Kreises und bei konstanter Datendichte, sowie gleicher Winkelgeschwindigkeit, sollte es außen viel schneller sein. Es sei denn natürlich das er außen so schnell ist, das er um alle Daten zu erfassen, mehrmals drehen muss. Bei r=2cm würde er schon doppelt so viele Daten lesen in der gleichen Zeit, wie bei r=1cm.... Wahrscheinlich ist aber hier der begrenzende Faktor die Verarbeitungszeit. Aber Grundsätzlich würde ich das selbe vermuten wie bei CDs/DVDs, das sie außen schneller zu lesen und zu beschreiben sind... Mit einer geschickten Aufteilung der Daten könnte man auch so vllt erreichen, das es einigermaßen konstant verteilt ist auf der Platte, s.d. die Lese-/schreibgeschwindigkeit überwiegend konstant bleibt, aber das ist wohl eher eine Sache des FS. Das könnte natürlich schon mal ein großen Unterschied ausmachen zwischen Linux.

Ich finde diese ganzen mehr oder minder theoretischen Werte sowieso völlig überbewertet. Es kommt doch einzig und allein auf die Arbeitsgeschwindkeit seines Systems an, wie es sich für einen persönlich anfühlt und nicht welche Limits seine Hardware hat. Also ich finde mit bonnie ist man da ganz gut bedient, das gibt mir auch etwa das an, was ich erreiche, wenn ich Dateien kopiere und mit gstat nachgucke. Mehr zählt für mich da erstmal nicht.

Ich hab eben mal, das auf 2x Dual-Core Opteron System getestet unter Scintific Linux und der kommt da auf ungefähr 800 MB/s das stimmt im leben nicht. Da hängt zwar an einem nicht gerade schlecht ausgestattetem RAID, aber der Wert spiegelt auf keinen Fall die wahre Geschwindigkeit wieder. Der mogelt bestimmt in dem er Teile davon in den Speicher schiebt und dann später auf die Platte schreibt (async). Bonnie installiere ich da später mal. Ich muss jetzt gehen.
 
Nach 2*pi*r für den Umfang des Kreises und bei konstanter Datendichte, sowie gleicher Winkelgeschwindigkeit, sollte es außen viel schneller sein. Es sei denn natürlich das er außen so schnell ist, das er um alle Daten zu erfassen, mehrmals drehen muss. Bei r=2cm würde er schon doppelt so viele Daten lesen in der gleichen Zeit, wie bei r=1cm.... Wahrscheinlich ist aber hier der begrenzende Faktor die Verarbeitungszeit. Aber Grundsätzlich würde ich das selbe vermuten wie bei CDs/DVDs, das sie außen schneller zu lesen und zu beschreiben sind... Mit einer geschickten Aufteilung der Daten könnte man auch so vllt erreichen, das es einigermaßen konstant verteilt ist auf der Platte, s.d. die Lese-/schreibgeschwindigkeit überwiegend konstant bleibt, aber das ist wohl eher eine Sache des FS. Das könnte natürlich schon mal ein großen Unterschied ausmachen zwischen Linux.

Aaaaalso, ich habe mich da nochmal schlau gemacht. Wir haben irgendwie alle recht ;) Es hängt von der Datendichte ab, die bei älteren Festplatten nach außen hin abnimmt. Und da war es tatsächlich so, dass die Geschwindigkeit innen höher war. Bei den modernen Platten ist das anders, da hier die Datendichte nach außen hin konstant bleibt.

Hier der Wikipedia-Eintrag dazu:
Klick!
 
Aaaaalso, ich habe mich da nochmal schlau gemacht. Wir haben irgendwie alle recht ;) Es hängt von der Datendichte ab, die bei älteren Festplatten nach außen hin abnimmt. Und da war es tatsächlich so, dass die Geschwindigkeit innen höher war.
Nein, da war die Geschwindigkeit über den gesamten Datenträger konstant. Das ist ungefähr 20 Jahre her, also IT-Steinzeit. Da von »älteren Festplatten« zu sprechen, ist schon etwas lustig. ;)

Derartig strukturiert sind heute nur noch Disketten.

ciao, jtsn
 
Das ist ja interessant, d.h. also wenn ich das richtig sehe, wird eine Platte von außen nach innen nach Möglichkeit beschrieben?
 
Zurück
Oben