Langsame Netzwerk-Geschwindigkeit mittels Apache-Webserver simulieren

von Manuel Breitfeld

Einleitung

Im Bereich der Web-Entwicklung gibt es viele unterschiedliche Szenarien, die zu testen sind, bevor eine Änderung "live" gehen kann. Neben den typischen Kompatibilität-Tests auf Betriebssystem, Browser und Bildschirmauflösung ist auch die Netzwerk-Geschwindigkeit eine Komponente, der Beachtung geschenkt werden sollte.
Insbesondere wenn Ressourcen nachgeladen werden müssen, ist es wichtig zu testen, wie die Web-Applikation bei verschiedenen Übertragungsgeschwindigkeiten reagiert.

In einem aktuellen Projekt haben wir eine Flash/AS3-Applikation getestet, die JSON-Daten per asynchronem Request vom Server erhält und daraufhin externe Bilddateien in die Applikation nachlädt. In erster Linie musste also sichergestellt werden, dass die Applikation auch bei langsamer Übertragungsrate und gleichzeitig hoher Anzahl nachzuladender Bilder intuitiv zu bedienen bleibt (sprich: Einführung von Ladebalken, Deaktivierung von bestimmten Elementen, etc.).

Das Tool "Throttle"

Während es für den Apache Webserver mittlerweile auch Module gibt, die das "throttling" übernehmen können sollen, gibt es damit relativ schnell Kompatibilitätsprobleme zwischen den unterschiedlichen Webserver Versionen.
Als zuverlässig hat sich das kleine auf Pipe-Basis [1] operierende Tool Throttle [2] herausgestellt. Unter Linux erfolgt die Installation einfach mit dem gewohnten Dreisatz "./configure && make && make install".

Apache Webserver und Throttle

Pipe-Tools lassen sich auf einfache Weise in den Apache Webserver einbinden (Stichwort SetOutputFilter [3]). Im Folgenden ist die Beispiel-Konfiguration für ein Bandbreiten-Limit von 56K angegeben:

# 56KB/s filter definition
ExtFilterDefine ksec56 mode=output cmd="/usr/local/bin/throttle 57344" preservescontentlength 
# Use filter (e.g. in Location or VirtualHost directive)
SetOutputFilter ksec56

Der Filter kann beispielsweise innerhalb einer belieben Location- or VirtualHost-Anweisung verwendet werden.

Fazit

Mittels Throttle und dem Apache Webserver können auch verschiedene Übertragungsgeschwindigkeiten einfach in die Tests bei der Web-Entwicklung einbezogen werden. Mithilfe der Location- oder VirtualHost-Anweisung kann die Beschränkung nur für einzelne Verzeichnisse aktiviert werden - perfekt um langsame externe Server zu simulieren.

Links

[1] Pipe auf Wikipedia
[2] Website zu Throttle
[3] Dokumentation zu SetOutputFilter

Zurück

© 2006-2024 exensio GmbH
Einstellungen gespeichert

Datenschutzeinstellungen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.

Sie können Ihre Einwilligung jederzeit ändern oder widerrufen, indem Sie auf den Link in der Datenschutzerklärung klicken.

Zu den gesetzlichen Rechenschaftspflichten gehört die Einwilligung (Opt-In) zu protokollieren und archivieren. Aus diesem Grund wird Ihre Opt-In Entscheidung in eine LOG-Datei geschrieben. In dieser Datei werden folgende Daten gespeichert:

 

  • IP-Adresse des Besuchers
  • Vom Besucher gewählte Datenschutzeinstellung (Privacy Level)
  • Datum und Zeit des Speicherns
  • Domain
You are using an outdated browser. The website may not be displayed correctly. Close