Estoy usando pgrouting en una base de datos postgis creado a través de osm2pgrouting. Se comporta muy bien en un conjunto de datos limitado (3.5 k maneras, todo el camino más corto A* búsquedas < 20 ms).
Sin embargo, ya me han importado un mayor cuadro delimitador (122k formas) de europa.osm el rendimiento bajó mucho (un camino más corto, cuesta alrededor de 900ms).
Yo creo que el uso de Un* la mayoría de los bordes nunca va a ser visitado, ya que están fuera del camino.
Lo que he hecho hasta ahora, en un intento de mejorar la velocidad:
- Poner un índice en la geometría de la columna (ningún efecto apreciable)
- El aumento de mi memoria de 8GB a 16GB
- Cambiar el postgresql configuración de la memoria (shared_buffers, effective_cache_size) de 128 MB, 128 MB) a (1, 2) (ningún efecto apreciable)
Tengo la sensación de que la mayoría del trabajo que se está haciendo en la C Impulsar la biblioteca, donde el gráfico que se está realizando para la optimización de postgresql no me dará resultados mucho mejores. Como hago cambios de menor importancia para el conjunto de filas que seleccionar Un* por cada búsqueda que me da un poco de miedo que el impulso de la biblioteca no puede caché de mi gráfica y tiene que reconstruir todos los 122k bordes cada vez que (a pesar de usar un subconjunto limitado de cada consulta). Y no tengo idea de cuánto se gasta haciendo que en comparación con el camino más corto de búsqueda.
¿Alguno de ustedes uso de pgrouting en un 122k o más conjunto de datos de OSM? Lo que el rendimiento que debo esperar? Cuáles son los ajustes que afectan el rendimiento de la mayoría?