[OSM-Devserver] Hängende Jobs von tirex/mapnik

Nop ekkehart at gmx.de
Do Aug 12 14:30:42 CEST 2010


Hallo!

Am 03.08.2010 08:21, schrieb Jochen Topf:
> Der tirex-backend-manager erkennt, wenn sich der rendering-Prozess nicht
> regelmäßig meldet, schießt ihn ab und startet einen neuen. Das löst aber
> natürlich das eigentiche Problem nicht.
>
> Das sollte aber nur passieren, wenn der mapnik im rendering ist, niemals bei
> "idle". Wenn das beim "initializing" passiert, dann stimmt wohl was mit dem
> map file nicht, "initializing" heißt, dass er das map file einliest.
>
> Du kannst den Timeout kürzer einstellen, aber manchmal braucht es halt auch
> sehr lange, ein Tile zu berechnen und das sollte natürlich nicht abgebrochen
> werden.

Ich habe nach wie vor das Problem, daß Jobs hängen bleiben. Und zwar ca. 
1% der Anfragen. Normalerweise werden Anfragen in ca. 500ms gerendert. 
Die Problemjobs lasten einen Prozessor zu 100% aus und stehen zu 
gleichen teilen auf "mapnik:idle", "mapnik: initializing" und "mapnik: 
rendering...".

Ich habe jetzt mal den Timeout auf 2 Minuten eingestellt, so daß die 
hängenden Jobs relativ flott abserviert werden. Das klappt, aber einer 
echten Lösung des Problems bin ich noch nicht näher gekommen.

Das Stylesheet ist definitiv ok, es klappt sowohl mit Python als auch in 
99% der Fälle mit tirex.

Im daemon.log ist protokolliert, wie tirex immer wieder die mapniks 
killt und neustartet. Im job-log stehen die meisten Jobs mit success=1.
Es gibt ein paar Einträge mit "render_time=0 success=". Was bedeutet 
das? Könnten das die Timeouts sein?

Gibt es eine Möglichkeit, näher herauszufinden, was die hängenden 
Prozesse mit "idle" und "initializing" treiben?


bye
                     Nop