2013-06-14 15 views
6

Wir sehen sehr schlechte Leistung bei der Verwendung von MITMProxy in Python. Wir sind benutzerdefinierte Weiterleitungsanforderungen mit der requests Python-Bibliothek.MITMProxy schlechte Leistung

Unser Programm verwendet den Skriptmodus auf MITMProxy, um eine benutzerdefinierte Anfrage basierend auf der Anfrage von einem Client zu erstellen und dann die Antwort zurückzugeben. Für jede Anforderung, die an den Proxy gesendet wird, wird also grundsätzlich ein neues Anfrageobjekt mit requests erstellt, dann weitergeleitet und dann zurückgegeben.

Wie kann ich die Leistung von MITMProxy erhöhen, wenn ich damit Anfragen weiterleiten möchte?

+0

Das ist sehr schwer, ohne zu wissen zu beantworten, welche Leistung Sie jetzt bekommen, und welche Leistung Sie erwarten. Außerdem scheinen Sie darauf hinzuweisen, dass das Leistungsproblem in MITMProxy liegt. Was haben Sie getan, um dies zu bestätigen (z. B. einen minimalen Lastgenerator mit bekannter hoher Leistung ausprobiert, um die Langsamkeit Ihres Codes oder der Bibliotheken, die Sie verwenden, auszuschließen). –

+0

Was ist das Maß für "Leistung" hier für Sie (ich rate Antwortzeit)? MITMProxy ist nicht dazu gedacht, eine leistungsstarke Lösung zu bieten. Infact, lesen Sie weiter, wie MITMProxy funktioniert (http://mitmproxy.org/doc/howmitmproxy.html) und Sie werden selbst herausfinden, warum es nicht fair ist, eine hohe Leistung von MITMProxy zu erwarten. MITMProxy kann intern mehrere Anforderungen stellen (speziell für den HTTPS-Verkehr). Sie scheinen darüber hinaus noch eine weitere Anfrageobjekt-Ebene hinzuzufügen. –

Antwort

6

Ich reparierte dieses Problem mit Juan vor einer Weile, aber in letzter Zeit ähnliche Fragen erhalten zu haben, mir die Lösung hier als Referenz lassen lassen:

mitmproxy hat einen Einstrom primitiv, so dass, wenn eine Inline-Skript etwas Handhabung, andere Anfragen blockieren. Skripte können mit dem libmproxy.script.concurrent Dekorator gefädelt werden. Weitere Details finden Sie unter docs.

(Full Disclosure: Ich Autor dieses Feature)