java-forum.org
JBoss Seam
Alter Preis: 39,95 €
Jetzt: 0,00 €

zzgl. Versandkosten

Zurück   java-forum.org > Java - Programmierung > Netzwerkprogrammierung

Netzwerkprogrammierung Fragen zu Client-/Server-Programmierung sowie zu verteilten Anwendungen (RMI, CORBA etc.)

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 11.03.2010, 17:32   #1 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von musiKk
 
Registriert seit: 05.11.2007
Beiträge: 1.449
Abgegebene Danke: 0
Erhielt 19 Danke für 19 Beiträge
Standard performante SCP/SFTP-Bibliothek gesucht

Hi,

ein Java-Programm muss regelmäßig relativ große Datenmengen von einem Server laden. Das geschieht über SCP. Zur Zeit findet das über das Linux-Programm scp statt, aber eine reine Java-Lösung wäre schöner.

Ich habe bisher drei Java-Implementierungen getestet: Trilead (gibts nicht mehr, aber wir haben noch die letzte freie Version), Jsch und sshtools (J2SSH). Das Problem dabei ist, dass die Downloadrate bei allen drei Implementierungen miserabel ist. Mit scp erhalte ich etwa 1 bis 1.1MB/s - das Maximum, welches der Server liefert -, mit Trilead etwa 280k, mit Jsch 65k und mit sshtools bis etwa 150k. Bei keiner der Implementierungen kann ich hohe CPU-Auslastung feststellen, daher wundert es mich sehr, wieso die Downloadraten so schlecht sind.

Vielleicht kennt jemand eine bessere Implementierung, die auch hohe Datenraten liefert.

Danke schonmal
mK
__________________
PNs mit Fragen zu Threads werden ignoriert.

Projekte: Classreader | more to come... stalled...
musiKk ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.03.2010, 17:36   #2 (permalink)
Stammbenutzer
Viertel Gigabyte
 
Benutzerbild von ARadauer
 
Registriert seit: 16.09.2006
Beiträge: 3.659
Abgegebene Danke: 0
Erhielt 52 Danke für 52 Beiträge
ich mach das immer mit ant
SCP Task

asso... wird dir nix helfen die verwenden auch jsch.. mhn aber du kannst es ja mal ausprobieren, ob das schneller geht
__________________
Meine Beiträge stehen unter der Beerware Lizenz!
ARadauer ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 12.03.2010, 09:10   #3 (permalink)
Stammbenutzer
Megabyte
 
Registriert seit: 19.01.2007
Beiträge: 1.563
Abgegebene Danke: 1
Erhielt 36 Danke für 36 Beiträge
Hm, so Blackbox-Diagnosen sind immer ein wenig heikel.
Wie ist denn der Test aufgebaut (eine große Datei? viele kleine Dateien?), wie sieht zum Vergleich der scp Befehl aus und wie verwendest du die API? Es wäre schon interessant zu wissen, wo denn die Performance verloren geht...

[EDIT]
Ok, schon was gefunden... SourceForge.net: SSHTools: Detail: 1734970 - Need changes for better performance of large file upload
__________________
Grüße,

++++++++++
[
>+++++++>++++++++++>+++>+<<<<-
]
>.
-----.
>++++++++++++++.
++.

So funktioniert das mit Foren/Newsgroups/Mailing Lists etc.:
smart-questions_de

Geändert von FArt (12.03.2010 um 09:23 Uhr)
FArt ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 12.03.2010, 11:44   #4 (permalink)
Stammbenutzer
Megabyte
Themenstarter
 
Benutzerbild von musiKk
 
Registriert seit: 05.11.2007
Beiträge: 1.449
Abgegebene Danke: 0
Erhielt 19 Danke für 19 Beiträge
Ja, es ist schon klar, dass ein pauschales "alles lahm" nicht viel bringt.

Ich muss relativ große Dateien übertragen. Im Schnitt mehrere hundert MB, daher ist der Unterschied 200k - 1MB auch sehr relevant. Der Test ist so einfach wie möglich aufgebaut. Ich verbinde mich und rufe das jeweilige Äquivalent einer getFile() -Methode auf. Oft erhält man dabei einen InputStream , da habe ich z. B. mit verschiedenen Buffer-Größen experimentiert (1-16k) - ohne Erfolg. Manchmal kann man die lokale Speicherung der Bibliothek überlassen, da waren die Ergebnisse auch immer gleich.

Ich werde mir bzgl. sshtools mal anschauen, was der verlinkte Patch macht. Aktuell ist halt Version 0.2.9 und der Patch ist für 0.2.7, von daher muss ich sehen, was das bringt.

Dennoch wundere ich mich einfach, wieso die Performance aller von mir getesteten Implementierungen so grottig ist. Wenn irgendwelche Entschlüsselungsroutinen schlecht geschrieben wären und die ganze CPU beanspruchen würden... aber ich kann gar nichts erkennen. Einen Fehler meinerseits würde ich natürlich nicht ausschließen, aber gerade wegen weiterer Fehlerquellen habe ich die Tests sehr einfach gehalten. Ich kann ja spaßeshalber mal ein Beispiel für sshtools zeigen:
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
SshClient sshClient = new SshClient();
sshClient.connect(host, port);
 
PasswordAuthenticationClient auth = new PasswordAuthenticationClient();
auth.setUsername(user);
auth.setPassword(pass);
sshClient.authenticate(auth);
 
ScpClient scpClient = sshClient.openScpClient();
scpClient.get("/tmp/flurbs", "remote/file", false);
 
sshClient.disconnect();
im Vergleich zu scp -P port user@host:remote/file /tmp/flubs . Nichts besonderes also. Gerade der ScpClient hat neben get() und put() keine weiteren Methoden. Bei den anderen sieht es ähnlich aus.

Was mir noch einfällt... vielleicht hat das sogar noch ganz andere Gründe. Intern geht die Übertragung auch mit den Java-Implementierungen sehr schnell. Nur bei dem bestimmten Server, von dem die Daten geholt werden müssen, tritt das Problem auf. D. h. die Java-Implementierungen machen da noch irgendwas anders als das Kommandozeilentool. Ich erwähns nur nebenbei, aus der Ferne kann man das sicher nicht diagnostizieren. Ich habe da leider gar keinen Ansatz...
__________________
PNs mit Fragen zu Threads werden ignoriert.

Projekte: Classreader | more to come... stalled...
musiKk ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 13.03.2010, 16:12   #5 (permalink)
Stammbenutzer
Megabyte
 
Registriert seit: 18.01.2007
Beiträge: 1.763
Blog-Einträge: 1
Abgegebene Danke: 0
Erhielt 14 Danke für 14 Beiträge
Evtl wird eine andere Verschlüsselung verwendet? Dass könnte die Unterschiede erklären.
__________________
Satzzeichen sind keine Rudeltiere, verdammt nochmal!!!
HoaX ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Lesezeichen

Latex Maths & Physics Editor ...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bibliothek für Graph Visualisierung gesucht as182005 Allgemeine Java-Themen 3 23.09.2009 19:13
Bibliothek gesucht Ana_lysieren von wss. Referenzen Jochen Merter Allgemeine Java-Themen 2 23.05.2008 12:45
PDF Formular Erzeugung Java Bibliothek gesucht onkelkarle Allgemeine Java-Themen 0 02.03.2007 16:45
Aktienkurse via Web - Bibliothek gesucht vogella Allgemeine Java-Themen 1 18.02.2007 14:08
Termin Kalender Bibliothek gesucht rog AWT, Swing & SWT 4 28.03.2006 15:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:51 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de