[GraphHopper] Running out of heap space when starting webapp with large .osm.pbf
Nate Atkinson
nate at gaia-movement.org
Fri Oct 10 13:10:32 UTC 2014
Hi Muhammad,
I'd be happy to give this a try. I'm not so familiar with java, and
internet searching for application tag / manifest / "largeHeap = true"
seems to lead me to Android resources. In this case, I'm trying to use
the web application linked from the quickstart guide on a server running
Linux. Is this setting still relevant for non-Android systems? If so,
which config file should I change?
Best Regards,
Nate Atkinson
On 10/10/2014 07:47 AM, Muhammad Babar wrote:
> Have you tried to set largeHeap = true in application tag (manifest)?
>
> On Fri, Oct 10, 2014 at 5:29 PM, Nate Atkinson <nate at gaia-movement.org
> <mailto:nate at gaia-movement.org>> wrote:
>
> Hi,
>
> I'm evaluating GraphHopper for integration with some software at work--
> specifically quickly generating geojson path for routes with up to 40
> stops. Using a small .osm.pbf file downloaded from geofabrik, it looks
> like GraphHopper will fit our needs well, and I'm excited to use it.
>
> When I try to use a larger .osm.pbf file, like the 6.2 GB file for North
> America, I get an error when trying to start.
>
> Here's what happens:
>
> nate at NateTestEnv:~/graphhopper$ java -jar
> graphhopper-web-0.3-with-dep.jar -Xmx7g jetty.resourcebase=webapp
> config=config-example.properties
> osmreader.osm=./north-america-latest.osm.pbf
>
> 2014-10-09 13:02:38,259 [main] INFO com.graphhopper.GraphHopper -
> version 0.3|2014-05-13T11:36:30+0200 (3,5,3,2,2)
> 2014-10-09 13:02:38,275 [main] INFO com.graphhopper.GraphHopper - graph
> LevelGraphStorage|car|MMAP_STORE_SYNC|2D|,,,,, details:edges:0(0),
> nodes:0(0), name: - (0), geo:0(0),
> bounds:1.7976931348623157E308,-1.7976931348623157E308,1.7976931348623157E308,-1.7976931348623157E308
> 2014-10-09 13:02:38,300 [main] INFO com.graphhopper.GraphHopper - start
> creating graph from ./north-america-latest.osm.pbf
> 2014-10-09 13:02:38,300 [main] INFO com.graphhopper.GraphHopper - using
> LevelGraphStorage|car|MMAP_STORE_SYNC|2D|,,,,, memory:totalMB:120,
> usedMB:8
> 2014-10-09 13:10:22,788 [main] INFO graphhopper.reader.OSMReader -
> 500 000 (preprocess), osmIdMap:6 959 244 (86MB) totalMB:723, usedMB:297
>
> ....
>
> 2014-10-09 13:13:01,288 [main] INFO graphhopper.reader.OSMReader -
> 10 000 000 (preprocess), osmIdMap:137 558 252 (1630MB) totalMB:1895,
> usedMB:1726
> Exception in thread "pool-1-thread-2" java.lang.OutOfMemoryError: GC
> overhead limit exceeded
> at
> gnu.trove.list.array.TLongArrayList.ensureCapacity(TLongArrayList.java:186)
> at
> gnu.trove.list.array.TLongArrayList.add(TLongArrayList.java:221)
> at
> com.graphhopper.reader.pbf.PbfBlobDecoder.processWays(PbfBlobDecoder.java:286)
> at
> com.graphhopper.reader.pbf.PbfBlobDecoder.processOsmPrimitives(PbfBlobDecoder.java:372)
> at
> com.graphhopper.reader.pbf.PbfBlobDecoder.runAndTrapExceptions(PbfBlobDecoder.java:388)
> at
> com.graphhopper.reader.pbf.PbfBlobDecoder.run(PbfBlobDecoder.java:406)
> ....
>
>
> I get a similar message for a second thread. The process stays running,
> but I see no CPU activity in top.
>
> The system is running Debian wheezy. I tested with openjdk 1.6 and 1.7.
>
> So, how can I get this running with a large network? I'm sure there's a
> command line switch or config setting somewhere that I've missed due to
> my inexperience with java.
>
> Best regards,
>
> Nate Atkinson
>
> _______________________________________________
> GraphHopper mailing list
> GraphHopper at openstreetmap.org <mailto:GraphHopper at openstreetmap.org>
> https://lists.openstreetmap.org/listinfo/graphhopper
>
>
>
>
> _______________________________________________
> GraphHopper mailing list
> GraphHopper at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/graphhopper
>
More information about the GraphHopper
mailing list