[Python-Leipzig] SSH unter Python: Langsam

Dr. Volker Jaenisch volker.jaenisch at inqbus.de
Fr Okt 18 00:39:57 UTC 2013


Servus!

Ich baue eine Client-Server-Anwendung, welche Windows und Linux als Plattform
unterstützen soll.
Der Use-Case ist simple:
* Daten auf Server hochladen
* Simulation starten
* Ergebnisdaten wieder runterladen

Die Authentication erfolgt über SSH-Pubkey ohne Passwort.

Ich habe das mit Fabric[1] abgebildet und es funktioniert.

Allerdings gibt es je nach Kombination aus Plattform und Python Distribution gewaltige Laufzeitunterschiede.
Diese sind nicht durch das Datenvolumen (0 Byte) und die Laufzeit der Simulation (im vorliegenden Testcase ein "sleep 2") zu erklären.

Fabric:
Linux/Anaconda -> Linux/Anaconda -> 281sec
Linux/Anaconda -> Windows/Cygwin/Anaconda -> 360 sec
Linux/Debian -> Linux/Debian -> 57 sec
Linux/Debian -> Windows/Cygwin/Anaconda ->  104 sec

Ich habe dann Fabric komplett ersetzt durch explicite lokale subprocess.calls von ssh/scp um Python-crypto/paramiko als Störer auszuschließen.
OpenSSH:
Linux/Anaconda -> Linux/Anaconda ->  8sec
Linux/Anaconda -> Windows/Cygwin/Anaconda -> 64 sec
Linux/Debian -> Linux/Debian ->  8sec
Linux/Debain -> Windows/Cygwin/Anaconda -> 54 sec
Es verbleibt ein Rest-Overhead durch Windows/cygwin der wieder einmal zeigt, dass diese Plattform in der Produktion nichts zu suchen hat.

Die Ursache scheint also in der Optimierung der crypto-Bibliotheken der Python Distributionen zu liegen.
Z.B. werden diese mit GMP oder MPIR übersetzt oder nicht.
Da ich keinen Einfluß darauf habe wie mein Kunde sich sein Python installiert (er nutzt Anaconda Python)
und das scheint recht gering optimiert zu sein, muss ich wohl mit der langsamen Performance leben....

Oder ich nutze ein anderes etabliertes Remote-Protocol welches SCP/SSH ersetzt und
sehr gute Python Integration auf beiden Plattformen hat.

Gibt es so was?
Alle Vorschläge willkommen.

[1] http://docs.fabfile.org/en/1.8/

Beste Grüße

Volker

-- 
======================================================
   inqbus  it-consulting       Dr.  Volker Jaenisch
   Richard-Strauß-Str. 1       +49(08861) 690 474 0
   86956   Schongau-West       http://www.inqbus.de
======================================================	    
	    




Mehr Informationen über die Mailingliste Python-Leipzig