Performance via vpn/ssh

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
frixhax
User
Beiträge: 39
Registriert: Donnerstag 21. April 2011, 14:06

Hallo!
Ich habe auf meinem Server ein Python-Programm, welches einiges an Tabellenkalkulation macht und danach mit matplotlib Plots erstellt und speichert. Dabei werden keine Grafiken auf dem Bildschirm ausgegeben sondern direkt weggeschrieben - die einzige Ausgabe ist Textausgabe in der Shell.
Wenn ich mich von zuhause aus per ssh/openvpn auf meinem Server einlogge und das Programm aufrufe, braucht es ein Vielfaches länger zum durchlaufen - obwohl ja eigentlich nur die Textausgabe über's Netz geschickt werden muss und der Code selbst auf dem Server ausgeführt und prozessiert wird. Woher kann dieser Performanceverlust kommen? Liegt das an Python?
Ich dachte dann, vielleicht läge es am X-Server, da ich mich gewöhnlich per ssh -X einlogge, um vollen Zugriff zu haben. Wenn ich mich ohne X einlogge, bekomme ich eine Fehlermeldung von Python, dass was mit der DISPLAY Variable nicht stimmt - obwohl ja eigentlich keine Grafik ausgegeben wird. Ich habe den Verdacht, dass es an matplotlib liegt, dass das auch ohne direkte Bildschirmausgabe auf X angewiesen ist. Weiß jemand etwas darüber?

Viele Grüße
Benutzeravatar
sparrow
User
Beiträge: 4600
Registriert: Freitag 17. April 2009, 10:28

Wenn das Programm über ssh langsamer läuft als auf der lokalen Konsole tippe ich auf ein Problem bei der Übertragung. Alternativ kann es auch an dem Client liegen.

Also entweder kommen so viele Daten zurück, dass die schmale Verbindung nicht reicht. In diesem Fall hilft die Option -C um die Verbindung zusätzlich zu komprimieren.

Ein anderes Problem könnte sein, dass dein Client länger braucht um die Zeilen auf der Konsole auszugeben. Wenn du sehr viele Zeilen ausgibst, der Client langsam die Ausgabe schreibt, der Server aber die Bestätigung des Schreibens abwartet, kann es auch zu einer Verzögerung kommen.


Gruß
sparrow
Benutzeravatar
frixhax
User
Beiträge: 39
Registriert: Donnerstag 21. April 2011, 14:06

Hi!
Hm, das ist es ja. Ich lasse nicht viele Zeilen ausgeben. Es sind 5 Zeilen pro Schleifendurchlauf, auf dem Server mit ca. 1s/Loop. Von zuhause aus sind es ca. 20s/Loop, wobei zwischen den Ausgaben der Zeilen einfach nichts passiert. Und wie gesagt, eigentlich dürfte außer den paar Zeichen nichts übers Netz geschickt werden, da die Berechnungen innerhalb der Schleife einfach intern im RAM des Servers laufen.
Habe es sowohl über ein nativ installiertes ScientificLinux (RHEL6) als auch über ein VM-basiertes Linux Mint versucht. Beides gleich langsam. Dann denke ich, dass irgendetwas im serverseitigen Netzwerk die Sache ausbremst, da die sonstigen Übertragungsgeschwindigkeiten bei Dateitransfer z.b. schnell sind, DSL eben.
Danke trotzdem!
Benutzeravatar
sparrow
User
Beiträge: 4600
Registriert: Freitag 17. April 2009, 10:28

Hast du mal -C versucht?
Antworten