[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