Actualmente estoy construyendo una instancia en EC2 en la que importar toda la instantánea de Planet.osm de toda la información de la Tierra para algunos proyectos en los que estamos trabajando. He creado una gran instancia de Ubuntu x64 y he conectado un montón de almacenamiento por separado en un volumen EBS para la base de datos de Postgres y lo modifiqué para alojar allí los datos de PGSQL.
Ahora el servidor está teniendo problemas osm2pgsql
para importar la instantánea ... Después de un par de intentos con diferentes configuraciones de memoria y demás, el proceso sigue mostrando "Killed" después de completar la mayor parte del proceso; una vez que fue asesinado mientras "repasaba las formas pendientes" y la próxima vez, después de ajustar ligeramente el caché delgado, alcanzó "formas de procesamiento" antes de estrellarse. Por lo que he leído, esto generalmente se debe a problemas de memoria.
Aquí está mi último intento de ejecutar la importación:
osm2pgsql -v -U osm -s -C 4096 -S default.style -d osm /data/osm/planet-latest.osm.bz2
Y aquí están las especificaciones para una instancia grande en EC2:
Instancia grande 7.5 GB de memoria, 4 Unidades de Computación EC2 (2 núcleos virtuales con 2 Unidades de Computación EC2 cada una), 850 GB de almacenamiento de instancia local, plataforma de 64 bits
Mi pregunta es: ¿hay algunos buenos recursos de referencia para determinar los requisitos de ajuste para osm2pgsql y Postgres? La velocidad de importación ni siquiera es tan importante para mí, solo me gustaría poder asegurarme de que el proceso se complete de manera segura, incluso si toma 4 o 5 días ... He leído a través de Frederick Ramm " Optimizando la representación documento en cadena "(PDF) del SOTM del año pasado, pero ¿hay otras buenas opiniones / recursos?
fuente
Respuestas:
Como dice la documentación , puede necesitar más de 256 gb de ram para hacer eso.
No sé mucho sobre EC2, pero puedes probar el modo delgado (--slim) o probar Osmosis .
Hay una publicación interesante: http://weait.com/content/build-your-own-openstreetmap-server Dice, 'debes usar el modo delgado'.
fuente
Debido a las restricciones de memoria, ni siquiera intenté usar osm2pgsql para cargar los datos de enrutamiento de planet.osm. En cambio, usé osm2po:
http://osm2po.de/
La mayor parte de la documentación está en alemán, pero con un poco de experimentación logré que funcione. Lleva unos días en un Core 2 Quad dedicado (pero solo usa un hilo).
fuente
Encontré lo siguiente mientras buscaba algo más http://aws.amazon.com/datasets/2844 : no estoy seguro de si te ayudará o no, pero podría ser un punto de partida.
fuente
¿Recibió una solución para su problema, que no sea el uso del paquete pregenerado anterior? Parece que tengo un problema muy similar en la instancia EC2. Estoy usando pbf planet de http://download.bbbike.org/osm/
Actualización: parece que encontré la solución: después de reducir la memoria solicitada a 6 GB (parámetro -C 6000), el proceso funciona (al menos ha funcionado durante varios días, terminaré hoy, espero).
Parece que la instancia m1.large con 7,5 GB de memoria es un poco demasiado pequeña para todos los nodos en la memoria (que debería requerir unos 11 GB en la actualidad). El osm2pgsql parece requerir menos de 700 MB adicionales para la memoria requerida, por lo que con -C 7000 se está quedando sin memoria, pero con -C 6000 (o posiblemente también -C 6500) funciona.
También sugeriría usar una instancia de memoria más alta con al menos 15 GB de RAM, debería hacer que la importación sea mucho más rápida. O incluso duplicar la instancia de memoria extra grande que costaría el doble, pero debería poder importar todo el planeta en modo no delgado dentro de <5 horas (aproximadamente 3-4 veces más rápido que el modo delgado). Por lo tanto, en realidad sería más barato.
fuente
Obtuve osm2pgsql para trabajar en EC2 usando menos CPU y más RAM. Falló debido a problemas de memoria hasta que aumenté la instancia a una memoria extra grande con 17 gigas de ram.
fuente