Failed building graph without error message

Hello everyone,

I would like to create europe-latest.pbf with the following profiles:
bike2, mtb, racingbike, foot, hike

I use the following configuration:
graph.dataaccess: MMAP

I use the elevation profile:
graph.elevation.provider: srtm

I have rented a server with 128 GB Ram from digital ocean.

I have started the process as follows:

export JAVA_OPTS="-Xmx125g -Xms125g"

./graphhopper.sh -a web -i europe.pbf -d

Everything ran through until the last profile and then it didn’t go any further.

2021-02-05 23:30:26.634 [hike] INFO  c.g.r.c.PrepareContractionHierarchies - Creating CH prepare graph, totalMB:113778, usedMB:87776
2021-02-05 23:30:28.905 [hike] INFO  c.g.r.c.PrepareContractionHierarchies - Building CH prepare graph, totalMB:113778, usedMB:78257
2021-02-05 23:31:22.872 [hike] INFO  c.g.r.c.PrepareContractionHierarchies - Finished building CH prepare graph, took: 53.96783s, totalMB:113778, usedMB:99351
2021-02-05 23:31:24.762 [hike] INFO  c.g.r.c.PrepareContractionHierarchies - Building initial queue of nodes to be contracted: 100534210 nodes, totalMB:113778, usedMB:100118

About 10 minutes after the last log, the CPU usage and disk i/o went to 0 and stayed that way.

What could be the cause? When the RAM runs full, an error message is actually written in the log.

I’m using the latest release from graphhopper.

Many thanks

This sounds like your system killed the process because it ran out of memory (so the JVM was not able to report the memory shortage). Check /var/log/messages and /var/log/kern.log and look for messages about OOM killer. What is your setting for prepare.ch.threads? You can reduce memory usage by running the preparations for the different profiles sequentially.

thanks for your reply.

That’s exactly what I thought.

My mistake was that I left the machine with too little RAM, as I reserved 125 GB of the 128 GB for Java. The 3 GB left over for running the programme filled up and the machine terminated the Graphhopper script.

I simply solved the problem and got a machine with 256 GB of RAM. I reserved 200 GB for Java. The machine can use 56 GB for running the programme.

The execution to calculate the graph took about 80 GB. So the machine was a bit oversized but it ran through.

It takes about 18 hours.

I have listed it briefly in case anyone has the same problem at some point.

Thanks

1 Like
Powered by Discourse