[Talk-de] Performance-Steigerung durch Proxy-Server

Michael von Glasow michael at vonglasow.com
Do Jun 16 19:36:58 UTC 2011


Hallo,

openmap.lt fährt eine Proxy-Konfiguration – Betreiber ist Ramas 
[User:Ieskok]. Im Detail kenne ich seine Konfiguration zwar nicht, Kern 
scheint aber ein Apache-Server mit Squid als Reverse Proxy zu sein.

Ob das die Performance verbessert, hängt von ein paar Faktoren ab: Zum 
einen ist ein Performancegewinn erst dann möglich, wenn eine Anfrage aus 
dem Cache bedient werden kann – also frühestens ab der zweiten Anfrage 
pro Kachel. Das hängt also sehr davon ab, wie viel Traffic der Proxy 
bekommt und wie sich dieser auf die Tilesets verteilt. Je weniger 
Streuung, um so besser. Zum anderen bringt es auch nur dann etwas, wenn 
der Proxy die Anfragen schneller bedienen kann als der OSM-Server selbst 
– zum Beispiel wegen besserer Netzverbindung oder geringerer Auslastung 
von Server-Ressourcen (einschließlich Netzverbindung). Spontan fallen 
mir da Firmennetzwerke und dergleichen ein, wenn diese nur eine schmale 
und/oder stark ausgelastete Verbindung zur Außenwelt haben.

Neben der Performance ist ein weiterer Bonus die Ausfallsicherheit: 
sollten die OSM-Server nicht erreichbar sein, hat der Proxy immer noch 
Daten im Cache. Wenn also viele User vorrangig die gleichen Gebiete 
anschauen, kann ein solcher Ausfall recht gut überbrückt werden.

Zwei Probleme stellen sich: zunächst die Aktualität der Tiles. 
Idealerweise holt der Proxy die Kacheln nur dann neu vom Server, wenn 
sich dort etwas geändert hat, und beantwortet sonst alle Anfragen aus 
dem Cache. Möglich wäre hier eine Staffelung: wenn eine Kachel weniger 
als x Sekunden/Minuten alt ist, wird sie ohne Wenn und Aber aus dem 
Cache geliefert, ansonsten wird mit einem HEAD-Request an den OSM-Server 
überprüft, ob es dort eine neuere Version gibt – wenn ja, wird diese vom 
Server geholt, ansonsten wird der Request ebenfalls aus dem Cache 
beantwortet. Im schlimmsten Fall werden dann halt mal Kacheln 
zurückgeliefert, die seit maximal x Sekunden/Minuten veraltet sind. Auf 
openmap.lt sehe ich zwar öfter mal veraltete Kacheln in Bereichen, die 
ich kurz zuvor editiert habe, allerdings hilft da meist ein Refresh der 
betreffenden Kachel (auch bei sehr frischen Updates), kann also auch an 
meinem lokalen Browsercache liegen.

Zum anderen, wie bereits erwähnt, die Tile Usage Policy: ein Proxy mit 
entsprechend Traffic kann hier schnell mal an die Grenzwerte stoßen und 
geblockt werden. Andererseits entlastet ein Proxy ja gerade die 
OSM-Server, so dass eine derartige Konfiguration durchaus im Sinne der 
Policy sein sollte – diese hat ja schließlich das Ziel, die 
Serverresourcen vor Überlastung zu schützen. Wenn jemand so etwas plant, 
würde ich empfehlen, einfach mal die Server-Admins anzuschreiben, denen 
das Vorhaben zu erklären – wenn das sauber gemacht wird, sollte es 
eigentlich im Sinne von OSM sein.

my 2 cents

Michael




Mehr Informationen über die Mailingliste Talk-de