On Tue, Jan 29, 2013 at 10:02:58AM +0100, jotpe wrote:
> Hallo zusammen.
> 
> Ich versuche germany.tar.bz2 (2GB) in OSM zu importieren. Jedoch wurde bei
> den letzen zwei Importen ein Kernel Panic "Out of Memory" ausgelöst.
> 
> Die Maschine hat 5 GB RAM, Debian Squeeze mit Postgressql 9.2.2. Mit den
> Standardeinstellungen des Pgsql konnte der Regierungsbezirk Köln (100MB)
> erfolgreich indiziert werden.
> 
> Dann habe ich nach dem Vorbild "Tuning PGSQL" in
> http://wiki.openstreetmap.org/wiki/Nominatim/Installation die Memory-Werte
> in postgresql.conf erhöht, damit ich nicht solange warten muss. Dort habe
> ich die Werte nach Gefühl von den beschriebenen 32GB auf meine 5GB
> angepasst.
> 
> Als der erste Versuch germany bereits Stunden lief, wollte ich "nebenbei"
> das OSRM kompilieren und währrenddesen war der Server plötzlich nicht mehr
> erreichbar. Im Serverraum sah ich dann die Meldung Kernel Panic: Out of
> Memory, konnte keine Prozesse mehr töten...
> 
> Vor dem zweiten Versuch stellt ich fest, dass durch einen
> Rechtschreibfehler gar kein swap (5 GB) aktiviert war => mit swapon
> nachgeholt. Ich verringerte die Speicherwerte (aber wegen jetzt verfügbaren
> Swap nur wenig) und ließ von weiteren parallelem Kompilieren ab.
> 
> shared_buffers = 950 MB ( 1GB mit echo "1073741824" >
> /proc/sys/kernel/shmmax )
> maintance_work_mem = 3500 MB (war das zu hoch?, in der pgsql doku steht
> 256MB)

Das würde ich auf max. 1GB zurücksetzen.

> work_mem = ??  (konnte noch nicht nachsehen, kein Zugang Serverraum)
> effective_cache_size = ?? (dito)
> checkpoint_segments = 100
> checkpoint_timeout = 10min
> checkpoint_completion_target = 0.9
> 
> Wiederum trat vermutlich der gleiche Kernel Panic (mom. kein Zugang
> Serverraum) innerhalb des setup.php-Abschnittes "Loading word list", wo
> 49000 Datensätze in die Tabelle "word_frequencies" importiert werden.

Das klingt, als wenn du auf diesen bekannten Bug gestossen bist:
https://github.com/twain47/Nominatim/issues/31

Versuche mal den dort beschriebenen Workaround und lasse den Import
mit --disable-token-precalc laufen. 

> Fragen:
> 
>    - Wenn ich die Standardeinstellungen der postgresql.conf
>    wiederherstelle, kann ich dann einen Kernel Panic verhindern auf Kosten der
>    Laufzeit, oder sind die voreingestellten Werte zu wenig für die großen
>    Datenmengen, was wiederum zu einem Kernel Panic führt?

Bei obrigen Bug scheint Postgres seine Speicherlimite zu überschreiten,
insofern gibt es da keine Garantie.

>    - Kann man vorher irgendwie prüfen, ob das mit dem Ram passt oder stellt
>    sich das immer erst nach 10h Laufzeit heraus?

Leider kann man das nicht wirklich vorher prüfen.

>    - Sagen wir pgsql bekommt maximal 3.5GB RAM dann bleiben noch 1.5GB
>    übrig bevor der SWAP benutzt wird. D.h. ich muss darauf achten, dass noch
>    genung RAM für das setup.php-Skript und osm2pgsql übrig bleiben. Wieviel %
>    sind da sinnvoll?

Es ist etwas komplizierter als eine einfache Prozentzahl, weil vieles von dem
Speicher, den du in der config einstellst, dynamisch alloziiert wird und 
natürlich
auch osm2pgsql seine Speichergrösse dynamisch anpasst. In deienm Fall würde ich
postgres nicht mehr als 3GB RAM zugestehen, lieber weniger. Aber das ist jetzt
wirklich nur geschätzt. 

Sarah

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an