PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Leistungsvergleich/Benchmark von HTTP und FTP durchführen - wie?


mf_Greg
2008-02-11, 13:45:35
Hallo,
sorry, dass ich mit meinem ersten Post hier im Forum gleich direkt um Hilfe fragen muss. Ausserdem weiss ich nicht genau, ob das Thema wirklich in dieses Unterforum reinpasst, aber eine sinnvollere Sparte habe ich nicht gefunden.

Es geht um Folgendes: ich muss für die Uni ein Projekt bearbeiten, habe aber ehrlich gesagt nicht wirklich Ahnung, wie ich das ganze bewerkstelligen soll... Vllt. kann mir eine gute Seele hier aus dem Forum einen Tipp/Tipps dazu geben? Würde mich echt freuen.

Es ist folgendes zu tun.

Leistungsvergleich der Übertragungsprotokolle

Protokolle am Start:

* http
* FTP
* DCX (original-Napster P2P-Protokoll)

Disziplinen:

Übertragung von 1 Mio Dateien kleiner bis mittlerer Größe.

Übertragung einer Datei der Größe 1 GB

Übertragung einer Datei der Größe 10 GB

Übertragung einer Datei der Größe 100 GB

(Übertragung einer Datei der Größe 1000 GB)

Übertragung einer Datei der Größe 1 GB bei schlechter Verbindung (simuliert durch einen
Magneten auf der Leitung <diese Disziplin ist bei Realisierungproblemen verzichtbar).

Übertragung einer Datei der Größe 10 GB bei mehrfacher physischer Verbindungsunterbrechung.

Für jede Disziplin wird gemessen:

D = Dauer der Übertragung
V = Dauer der Verbindung(en)
F = Anzahl der Dateien mit mindestens einem Bitfehler
A = Prozentsatz der Dateien, die bei automatisiertem Ablauf korrekt übertragen wurden

Was ich zur Verfügung habe: 2 Rechner verbunden über einen Router (Telekom Speedport W700V - oder zur Not auch ein Dlink Di614+).

Leider hab ich wie gesagt nicht wirklich viel Ahnung von der Materie. Ich denke, ich muss je Protokoll einen Server installieren und dann Daten rüberschicken. Frage ist nur, wie ich die Disziplinen adäquat messen soll??

Wie gesagt, würde mich über Hilfe, Tipps etc. riesig freuen!

Greg

Berni
2008-02-11, 14:24:48
Ich würd mal schauen was wget so kann (bietet ja rekursive Übertragung für HTTP und FTP an was bei den 1 Mio Dateien sicher hilfreich ist). Ansonsten zumindest bei FTP und HTTP sollte das mit einer Programmiersprache deiner Wahl auch relativ leicht zu lösen sein (evtl. php) und vor allem kann mans dann auch recht exakt timen...
Bei den FTP-Servern gibts (genauso wie bei HTTP-Servern) Performanceunterschiede, ich würde vsftpd unter Linux nehmen (dürfte zu den schnellsten gehören). Als HTTP-Server halt irgendeinen Apache (xampp) oder Lighttpd.
Wie man das bei DCX machen kann weiß ich nicht. Ich wusste auch gar nicht, dass das überhaupt DCX heißt. Aber vielleicht kann man irgendwas mit OpenNapster als Basis nehmen? Ansonsten halt einfach per Stoppuhr davorsetzen.
Die Überprüfung auf Bitfehler kannst du ja mit einem sfv-Checker-Tool einfach nach der Übertragung bewerkstelligen (moosfv).

mf_Greg
2008-02-11, 15:17:39
Ich würd mal schauen was wget so kann (bietet ja rekursive Übertragung für HTTP und FTP an was bei den 1 Mio Dateien sicher hilfreich ist). Ansonsten zumindest bei FTP und HTTP sollte das mit einer Programmiersprache deiner Wahl auch relativ leicht zu lösen sein (evtl. php) und vor allem kann mans dann auch recht exakt timen...
Bei den FTP-Servern gibts (genauso wie bei HTTP-Servern) Performanceunterschiede, ich würde vsftpd unter Linux nehmen (dürfte zu den schnellsten gehören). Als HTTP-Server halt irgendeinen Apache (xampp) oder Lighttpd.
Wie man das bei DCX machen kann weiß ich nicht. Ich wusste auch gar nicht, dass das überhaupt DCX heißt. Aber vielleicht kann man irgendwas mit OpenNapster als Basis nehmen? Ansonsten halt einfach per Stoppuhr davorsetzen.
Die Überprüfung auf Bitfehler kannst du ja mit einem sfv-Checker-Tool einfach nach der Übertragung bewerkstelligen (moosfv).
Hallo Berni,
wow, vielen Dank schon mal für die superschnelle Antwort!
Da ich programmiertechnisch leider nicht wirklich ein As bin (habe ausserdem nur Kenntnisse in JAVA), werde ich erst mal das von Dir vorgeschlagene wget ausprobieren.

Zu den Servern, ich hätte dazuschreiben sollen, dass auf beiden verfügbaren Rechnern WinXP installiert ist - deswegen scheidet vsftpd leider für mich aus. Ich werde mich nach einem anderen ftp-server umschauen. Bzgl. des HTTP-Servers, vielen Dank für den Tipp, werde mir Lighttpd ansehen.

DCX lasse ich auch erst mal aussen vor, da das Protokoll ebenfalls mir bisher nicht bekannt war (was aber auch nicht so unglaublich verwunderlich ist ;)). Ich konzentriere mich vorerst auf ftp und http, schon allein deswegen, weil das die in der praxis wohl am häufigsten eingesetzten Protokolle sein werden.

moosfv werde ich mir ebenfalls anschauen, ebefalls für diesen Tipp vielen Dank! :)

Greg

Berni
2008-02-11, 17:50:50
FTP-Server gibts ja auch genug für Windows, kannst ja mal hier schauen: http://en.wikipedia.org/wiki/Comparison_of_FTP_servers
Zu beachten ist auf jeden Fall, dass sowohl bei HTTP als auch FTP der Speed in einem gewissen Umfang sowohl vom Client als auch vom Server sowie den eingestellten TCP/IP-Netzwerkparametern (z.B. RWIN) abhängt.

In Java kann man übrigens auch per http oder ftp Daten holen. Ich weiß ja nicht was du studierst (irgendeine Informatikvariante?) aber grundsätzlich wäre so ein Projekt ja schon eine gute Gelegenheit, deine Kenntnisse im Programmieren vielleicht zu erweitern...ist ja eigtl. ne relativ einfache Sache noch.

Mit dem DCX würd ich noch mal nachfragen. Man findet dazu eigtl. überhaupt nichts. Vielleicht vertippt irgendwie?

rotalever
2008-02-11, 19:50:07
Bei HTTP ist Lighttpd deutlich schneller als Apache2. (Subjektive und Objektive Erfahrungen mit Statischen Dokumenten: 1-5x schneller)

The_Invisible
2008-02-11, 20:49:15
Bei HTTP ist Lighttpd deutlich schneller als Apache2. (Subjektive und Objektive Erfahrungen mit Statischen Dokumenten: 1-5x schneller)

ja, je nach internetanwendung und -zugriffen zahlt sich ein kleiner lighttpd server für statische inhalte schon aus zB sf.net macht es so. ansonsten dürfte man schwer vom featurereichtum eines apachen wegkommen.

mfg

Nasenbaer
2008-02-11, 21:06:49
Den Bulletproof FTP Server ist für Windows und gibt es als Trial. Für die Tests sicher ausreichend.
http://www.bpftpserver.com/

mf_Greg
2008-03-23, 20:08:42
Nach etwas Abstinenz muss ich wieder um Eure Hilfe fragen :)

Bisheriger Stand:
- FTP-Server: Cerebrus FTP Server (http://www.cerberusftp.com/)
- HTTP-Server: lightpd
- Client-Software: wget
- Prüfung auf Korrektheit: MD5 mit MooSFV (http://www.ubercow.com/moosfv/)

Ich habe all Eure Tipps beherzigt und bin bisher sehr zufrieden, also vielen Dank nochmal!

Ich habe auch bereits die meisten Tests gemacht. Allerdings eher pragmatisch, sprich Dateien mit winrar zu grossen dateien zusammenkopiert etc.. Nun wollte ich den Test mit den 1 Mio Datein machen und auch mal eine richtig grosse Datei generieren (ca. 200 GB). Habe im Internet nach einem Programm gesucht, welches eben Dateien automatisch generieren kann. Folgendes habe ich gefunden:

http://www.geocities.com/alreaud/TestFileGenerator/Test_File_Generator.html

Das Programm wäre perfekt für meine Bedürfnisse. Allerdings ist die Beschränkung der zu generierenden Dateien auf 1000 beschränkt sowie die max. Dateigroesse auf 1 MB. Ich habe zwar noch nie was mit C++ gemacht, aber rausgefunden, dass man die Werteinschränkungen in der Datei TFG.h einstellen kann.

// Minnimum and maximums definitions.
#define MIN_COUNT 1
#define MAX_COUNT 1000
#define MIN_SIZE 1000
#define MAX_SIZE 1000000
#define MIN_SPREAD 250
#define MAX_SPREAD 250000

Ich habe die Werte auf folgendes "korrigiert":

// Minnimum and maximums definitions.
#define MIN_COUNT 1
#define MAX_COUNT 1000000
#define MIN_SIZE 1000
#define MAX_SIZE 1000000000000000
#define MIN_SPREAD 0
#define MAX_SPREAD 250000

Da ich bisher wie gesagt keine C++ Erfahrung habe, habe ich einfach mal Dev-C++ 5 beta runtergeladen, installiert und wollte das Programm neu kompilieren.
http://www.bloodshed.net/devcpp.html

Leider bekomme ich beim kompilieren folgende Fehlermeldung:
[Warning] command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
cc1plus.exe D:\Data\projekt\Programs\TestFileGenerator new\cc1plus.exe unrecognized command line option "-fsave-memoized"
D:\Data\projekt\Programs\TestFileGenerator new\Makefile.win [Build Error] [TFG_Main.o] Error 1

Weiss jemand von Euch, was der Fehler ist?

Greg

Berni
2008-03-26, 20:26:50
Mach halt mal die 2 Optionen "-Wstrict-prototypes" und "-fsave-memoized" im Makefile.win weg...oder du suchst dir mal genau die Compilerversion, die der Autor verwendet hat (Dev-C++ 4.9.9.0) und ich vermute mal, du wirst diese angesprochene FLTK auch noch brauchen.