[GraphHopper] Running out of heap space when starting webapp with large .osm.pbf

Nate Atkinson nate at gaia-movement.org
Fri Oct 10 13:51:18 UTC 2014


Hi Álvaro,

I have -Xmx7g already in the command line. I'll try moving it to before
the -jar.

Due to a mishap with a "*" on the command line, I need to redownload the
.osm.pbf file, but I'll give this a shot in an hour or so when the file
finishes.

Best regards,

Nate Atkinson


On 10/10/2014 08:20 AM, "Álvaro Monares G." wrote:
> Hi Nate, I assume that the issue is that the java virtual machine is
> running out of memory.
> So you can modify the maximum Java heap size with the parameter
> -Xmx
> For instance
> java -Xmx1024m  -jar graphhopper-web-0.3-with-dep.jar -Xmx7g
> jetty.resourcebase=webapp   config=config-example.properties
> osmreader.osm=./north-america-latest.osm.pbf
> 
> So you are giving to the java virtual machine 1024MB (maximum) for
> memory, if you run out of memory again
> you can increase.
> 
> Well, best regards
> Álvaro Monares G.
> 
> El 10-10-2014 10:10, Nate Atkinson escribió:
>> 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
>>>
>> _______________________________________________
>> GraphHopper mailing list
>> 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