Tiles Downloader bremsen Server aus

Richtig! OSM ist ein weltweites Projekt. Wenn es bei uns spät nachts ist, ist in den USA grad Nachmittag oder Abend, also “Hauptverkehrszeit” in Sachen Downloads. Zudem geht es meines Wissens gar nicht in erster Linie um den Traffic, sondern um das so genannte Rendern-on-the-Fly.

Die Kacheln in den hohen Zoomstufen (mindestens 17 und 18) werden nicht schon gerendert vorgehalten, sondern erst dann erzeugt, wenn jemand sie anfordert. Die CPU-Last für den Server ist in diesem Fall sehr hoch. Wenn ich richtig gerechnet habe, gibt es allein in Zoomstufe 18 insgesamt 20 Milliarden Kacheln (ohne Meeresfläche). Diese komplett zu rendern und täglich aktuell zu halten, ist fast nicht möglich; so etwas könnte man höchstens für jeweils ausgewählte Regionen schaffen, also zum Beispiel einen Deutschland-Server aufstellen, der dann nur damit beschäftigt ist, Kacheln zu rendern…

Also ich finde das eine ganz ganz tolle Idee. Da du ja damit bereits Erfahrungen hast, wäre es doch ein leichtes das mal in ein Programm zu gießen und der Allgemeinheit zur Verfügung zu stellen, oder?
Wahrscheinlich hängt da einfach etwas mehr dran. Vor einigen Monaten konnte man bereits schon einmal über MOBAC lesen. Nach dem NOP die Reit und Wanderkarte gesperrt hat, hat sich auch der Autor hier blicken lassen. Immer wieder rief er ich will erstmal Statistiken. Ich glaube gar nicht das meine Anwendung und und und.
Ja dann hat ihm der Admin die gleiche Hausnummer wie eben genannt und er war leicht schockiert. Darauf hat er seine Anwendung offline genommen und sich daran gemacht eine Möglichkeit zu suchen offline rendering anzubieten. Was daraus geworden ist sehen wir ja deutlich. Auch die Argumente, dann laden sich die Nutzer eben Googlemaps runter statt OSM, scheinen nicht wirklich Realität geworden zu sein.
Im Übrigen sehe ich es wie Aighes. Warum soll sich der Serverbetreiber darum kümmern? Wenn du eine Website mit tollen Inhalten als Werbung machst, dann wirst du doch auch nicht hinnehmen, wenn ein anderer diese Seite ohne deine Werbung als Iframe einbindet. Dazu gibt es bereits Urteile. Aber bei OSM ist das anders?

Wir könnten ein Projekt starten das die Kapazitäten aller “Hobby” Renderer bündelt. Beispielsweise betreibe ich solch einen Renderer/Tileserver für eigenen Projekte der damit lange nicht ausgelastet, für massive öffentliche Zugriffe aber nicht leistungsfähig genug ist. Wenn nun jemand eine Art load-balancing-server anbieten würde der über eine einzige Adresse die Last über all diese kleinen server verteilt wären diese besser ausgelastet und die Allgemeinheit könnte mit Zugriff darauf die Hauptserver entlasten.

Leute, wir machen doch unsere Karte, gerade damit man sie nutzt, das steht doch außer Frage? Und da sollte (meiner Meinung nach) nicht wie in Politik und Wirtschaft der schwarze Peter hin und her geschoben werden, sondern zusammen eine Lösung erarbeitet werden.

MOBAC finde ich eigentlich auch ein sehr gutes Programm, da sich der Autor mal hingesetzt hat und die Sachen, die 90% aller Tools zur Nutzung von Online-Karten zusammengetragen hat. Aber leider tritt jetzt ebend besagtes Problem auf und dass muss zwingend mit der Hilfe des Autors gelöst werden. Ansätze wären:

  • Nutzung von Mapquest Tiles
  • eigenen MOBAC Tiles Server finanzieren
  • Integration von besagter Offline Rendering-Technologie

P.S. Habe die Leute mal aufmerksam gemacht: https://sourceforge.net/apps/phpbb/mobac/viewtopic.php?f=1&t=24

… oder Stefan Küste fragt mal bei Winzigweich nach, ob die noch ein paar Server rumstehen haben. Schliesslich haben die uns ihre Luftbilder zum abmalen überlassen, um von den Navteq-Lizenzverträgen weg zu kommen.

Gruß,
ajoessen

Genutzt ja, aber nicht missbraucht.

Theoretisch funktioniert das - in der Praxis ist diese Lösung nur für kleine Kartenausschnitte mit hohen Zoomstufen brauchbar. Der Grund dafür liegt wie du ja erwähnst in dem hohen Speicherverbrauch von Maperative. Was Maperative einfach fehlt ist eine integrierte Datenbank, damit nicht alles im RAM gehalten werden muss. Aktuell braucht man ohne 64Bit Betriebssystem und mindestens 4-8GB Hauptspeicher da gar nicht erst anzufangen, wenn man Übersichtskarten generieren will. Schon der Import von Hessen (~1GB als OSM-Datei) scheitert auf einem 32Bit Windows-System an der 2GB-RAM-Hürde.

Und MapQuest hat keine TileUsage-policy? Das würde das Problem IMHO nur verschieben.
Einen eigenen TileServer wäre eine Möglichkeit, jedoch habe ich keinerlei Erfahrung mit der Thematik und das MOBAC-Projekt verfügt über keinerlei Finanzen. Außerdem würde die Qualität und Aktualität nie den Stand der OSM-Server erreichen, was viele Nutzer wieder dazu bringen würde auf die OSM-Server umzuschalten. Da scheint es mir sinnvoller zu sein einen Spendenaufruf in MOBAC zu integrieren, so dass OSM noch irgendwo einen Mirror-Server hinstellen kann.

Die Offline Rendering-Technologie scheint mir langfristig die beste Lösung zu sein. Allerdings ist das Hauptproblem hier, dass der Hauptteil der MOBAC-Nutzer Windows verwendet und OSM Windows eher stiefmütterlich unterstützt. MapsForge ist ein Ansatz - leider bisher wie schon erwähnt ohne PC-Umsetzung (da scheint aber etwas in Arbeit zu sein - wann und wie es nutzbar wird steht aber in den Sternen).
Ich habe schon einige Versuche unternommen einen Offline-renderer in MOBAC zu integrieren, bin jedoch nie weit gekommen. Im Moment experimentiere ich mit der 2.4er Beta von SpatialLite nachdem ich gesehen habe, dass es ein SQLite Plugin für Mapnik gibt.

Ansonsten habe ich in den vergangenen Monaten schon einiges umgesetzt in MOBAC, um die OSM-Server vor zu gierigen Nutzern zu schützen. Das dazu geführt, dass die alten unbeschränkten Versionen (die es auf der Projektseite nicht mehr zum Download gibt) sich sehr großer Beliebtheit erfreuen.

mobrob/r-x - Autor von MOBAC.

Das Internet vergißt eben nichts. Auch keine alten Programmversionen.
Die moderne “Büchse der Pandora”.

Es wird nichts anderes übrig bleiben, als die OSM-Server vor Massendownloads zu schützen.

tt

Hi, doch, aber die erlaubt ausdrücklich die Nutzung durch Dritte (in deinem Fall würde ich sie allerdings vorher nochmal kontaktieren). Die haben auch ein ganzes Content-Delivery-Network hinter sich und nicht wie wir nur ein paar Server.
http://wiki.openstreetmap.org/wiki/MapQuest#MapQuest-hosted_map_tiles
http://wiki.openstreetmap.org/wiki/TMS

Das mit der Spende wäre sicherlich auch eine Möglichkeit, aber keine die mal ebend mittelfristig wirkt. Auch bei unserem Projekt braucht es ja Admins, die diese Server betreuen können. Das Aufsetzen eines eigenen Servers ist mittlerweile auch nicht mehr so schwer und kann wie viele unserer kleineren Projekte trotzdem minutengenau aktualisiert werden mit der Haupt-Datenbank.

Gäbe es eine Möglichkeit die alten MOBAC Versionen per Refferer oder User-Agent zu blocken und die neuen intakt zu lassen?

Auch wenn es ein weltweites Projekt ist, ist did Popularitaet in Europa wesentlich groesser als im Rest der Welt. Insofern ist das Traffic verhalten stark durch Europa gepraegt und somit gibt es derzeit durchaus stark und schwachlastzeiten. http://munin.openstreetmap.org/openstreetmap/konqi.openstreetmap/if_eth0.html zeigt das Trafic verhalten des tile-proxy servers.

Das war frueher der Fall, das hat sich aber in letzter Zeit wohl etwas geaendert.

Das on the fly rendering ist nicht mehr so sehr das Problem. Zum einen hat das Hardwareupdate (verwendung einer SSD fuer die DB) die Rendering performance deutlich gesteigert, zum anderen haben diverse mechanismen dafuer gesorgt das die rendering requests etwas ausgebremst wurden. Somit kommt es zur Zeit nur noch selten vor das der Renderingteil des Servers ueberlastet ist.

Andererseits, haben wohl die beiden Hoster von OSM (University College London und Imperial College), vor kurzem OSM freundlich darauf hingewiesen das OSM inzwischen so viel traffic verursacht das es nicht mehr so einfach im akademischen Netz der Unis nebenher laufen kann und OSM aufgefordert dafuer zu sorgen das der Traffic zurueckgeht, oder zu mindestens nicht weiter waechst. (Was genau die Bedingungen waren weis ich nicht).

Desshalb haben die Sysadmins in den letzten Wochen verschiedene Massnahmen ergriffen um den Traffic einzudaemen um sicherzustellen das OSM nicht irgendwann das Hosting wegen ueberbenutzung verliert. Was genau gemacht wurde, weis ich nicht. Eine Massnahme war unter anderem einige wohl bekannte tile scraper Programme wie MOBAC, OpenMaps oder NaviComputer zublocken. Anstelle der normalen OSM Kacheln bekommen diese Programme die folgenden Fehlerkachel ( http://wiki.openstreetmap.org/w/images/d/df/Tile_Abuse.png ), es wurde auch eine Wiki Seite angelegt um die Sache den veraergerten Nutzer zu erklaeren ( http://wiki.openstreetmap.org/wiki/Blocked_applications ). Ausserdem wurden die per IP Limits fuer Traffic herabgesetzt.

Wie weit das hilft und ob noch weitere Massnahmen ergriffen werden muessen muss man noch sehen.

Als regelmäßiger Mobac Benutzer würde ich es sehr schade finden, wenn Mobac geblockt wird.

Nach meiner Erfahrung hat Mobac einen sehr effektiven “Tilestore”.
Wenn man Mobac länger benutzt bemerkt man, das immer weniger gedownloadet(denglish) wird.

Vielleicht ist es ja möglich auf dem Server die Bandbreite per User zu begrenzen.
Und für Poweruser dann die Lösung von Wanderreitkarte:
http://www.wanderreitkarte.de/shop_abo_de.php

Optimal wäre die weiter oben genannte Lösung von “quasilotte”, ist aber sicher nicht einfach umzusetzen.

Happy Mapping,
Thomas

Hmm ein Abo halte ich zum einen schwierig umzusetzen, auf der anderen Seite auch eine sehr sehr fragwürdiges Vorgehen für ein Open* Projekt :wink: Dann doch eher den Spenden-Ansatz. Da müssten wir aber mit den Admins reden, das ist ja sehr schwierig, wenn wir das Hosting bisher gratis bekommen und dann das auf einmal komplett bezahlen müssten. Aus Erfahrung weiß ich auch, dass Bonuszahlungen an Universitäten auch nicht hilfreich sind, da mit enorm viel Bürokratie verbunden.

Kann ich gut verstehen.
Es ist hier halt wie im übrigen Leben:
Wenn sich einige partout nicht an die Spielregeln halten wollen, müssen auch diejenigen drunter leiden, die sich dran gehalten haben.

@ !i!
Ich glaube nicht, daß der Spenden-Ansatz zum Ziel führen wird.

@ morob
Ist es möglich, in die neue MOBAC-Version eine Art Identifikation einzubauen, mit der das Programm von den OSM-Servern von den alten Versionen unterschieden werden kann?
Vielleicht läßt sich die Download-Sperre dann gezielt auf die alten “Sauger-Versionen” beschränken und die Recourcen schonende Version könnte bis zu einem bestimmten Limit Tiles laden.
Solange sich die “Guten” nicht von den “Bösen” unterscheiden lassen, müssen die “Guten” für die Fehler anderer zahlen. Das ist zwar unfair. Man kann aber auch nicht von OSM verlangen, eine Zeche zu bezahlen, die andere bestellt haben.

AFAIK geben sich die alten Versionen als normaler Browser (FF) aus und neuere als Mobac.

Des einen Freud - des andern Leid … irgendwie gibt’s da so ein Sprichwort …

Soeben wollte ich mal eben schnell etwas bei GPSies.com nachsehen.
Ein Absurfen der OSM-Karte ist auch in höheren Zoomstufen nicht mehr möglich.
Die Tiles erscheinen massiv zeitverzögert oder längere Zeit gar nicht.
Dieser durch die Tile-Sauger provozierte Effekt betrifft alle Online-Dienste, die OSM-Karten vom OSM-Tile-Server beziehen.
Tourenportale, Sporttracks etc. müssen dadurch wieder mit anderen Kartenanbietern genutzt werden.

Das Blocken von Tile-Saugern sorgt also letztlich dafür, daß diese Tile-Sauger aufhören, andere, früher problemlos funktionierende OSM-Karten zeigende Anwendungen blockieren.
Das ist nicht mehr als gerecht.

Gruß
tt

Ich erlaube mir mal kurz aus dem Forum und TALK-DE zusammen zu fassen:

Tiles Server werden langsam zum Problem weil:
-Anzahl der Verbindungen wird für Unis zu hoch (aktuelles Problem)
-Traffic und Rechenlast steigt immer weiter (schon länger)

deshalb musste Auslieferung der Tiles gedrosselt werden (Erkennung von Scrapern nicht zuverlässig möglich), damit gerade für uns Mapper noch genügend Performance übrig bleibt. Dadurch sind natürlich auch teilweise Dienste anderer Webseiten betroffen. Andernfalls wäre allerdings bereits jetzt das Hosting von OSM gefährdet.

Lösungsvorschläge sind:
-Nutzung alternativer Tiles-Services durch Apps (Mapquest, Cloudmade, …)
-Aufbau von eigenen Tiles-Servern durch App-Betreiber, oder einkaufen von Diensten
–dafür wird vorgeschlagen die Wiki Doku von Mapnik, PostGIS, … zu verbessern
–Kai baut schon an out-of-the-box Paketen für Ubuntu Server
-Spenden durch Apps-Anbieter
–Problem der überlasteten Hardware der Unis ist damit auch nicht lösbar
–einige (z.B. Frederik, Firefishy,…) sehen OSM nicht als “Dienstleister”, sondern nur für die Aufgabe des Projektes zuständig, nämlich eine freie Weltkarte zu erstellen. Karten zeichnen und diese performant zu deployen können/sollten wir auch mit Spenden nicht übernehmen
–möglich wäre auch ein “Premium” Abo für das Anbieter zahlen müssten, damit diese den heavy load verkraften
-Apps sollen auf Offline-Rendering von Vektordaten umstellen
–dafür gibt es von uns noch keine ähnlich einfache Technik, wie fertige Tiles zu nutzen.

Hat denn jemand von euch schon Kontakt zu den Autoren der weiteren Tools aufgenommen? Wer wäre so nett das mal anzugehen?

Wenn das hantieren mit OSM Rohdaten nicht so unsäglich kompliziert wäre, würden wohl viel mehr Leute lokal rendern.

Wyo

Schick wäre m.E. auch ein gutes Konzept, in Openlayer-Karten die standardmäßig angezeigten Kacheln (also die in der Ausgangs-Zoomstufe, die jeder Besucher lädt, auch ohne sich in der Karte zu bewegen) lokal zu cachen. Hat da jemand gute Ideen, wie das umzusetzen wäre?

.htaccess …könnte in etwa so aussehen


<IfModule mod_expires.c>
  # Enable expirations.
  ExpiresActive On

  # Cache all files for 2 weeks after access (A).
  ExpiresDefault A1209600

  # Archdiocese-specific performance additions
  ExpiresByType text/html "access plus 4 weeks"
  ExpiresByType application/x-javascript "access plus 4 weeks"
  ExpiresByType application/javascript "access plus 4 weeks"
  ExpiresByType text/javascript "access plus 4 weeks"
  ExpiresByType text/css "access plus 4 weeks"
  ExpiresByType image/gif "access plus 4 weeks"
  ExpiresByType image/jpeg "access plus 4 weeks"
  ExpiresByType image/jpg "access plus 4 weeks"
  ExpiresByType image/png "access plus 4 weeks"

  </IfModule>

Dann müsste man Openlayers ja noch dazu bringen, die Kacheln lokal zu suchen (was vermutlich einfach ist), und noch eine Weiterleitung für nicht existierende Kacheln konfigurieren (müsste auch machbar sein, denke ich?). Ich meine mich zu erinnern, etwas ähnlichem auch mal in der Mailingliste begegnet zu sein. Muss ich mal suchen, und dann einfach ausprobieren, ob ich alles zusammen umgesetzt und evtl. “wikifähig” bekomme.