Performance test results analyzis


Here it says that graphopper can handle 150 req/s. I just wanted to confirm that before starting using it. For me for very small city with pbf with size of 27mb and requests for very short routes like 5km what I could get is ~40 req/s (with all responses not exceeding 400ms). As you can see on charts everything breaks on 1:45 when req/s exceeds 40 req/s - after that we see response thime bigger than 400ms and for 60 req/s at 2:30 response was above 1200 ms) and for bigger load it is even worse but I stopped the test. Here is my setup:

graphhpper version: 0.13
machine: Azure’s Standard D4 v3 (4 vcpus, 16 GiB memory)
System: ubuntu 18.04
run command: java -Xconcurrentio -XX:+UseG1GC -XX:MetaspaceSize=100M -Xmx16g -Dgraphhopper.datareader.file=wroclaw.pbf -jar graphhopper-web-0.13.0.jar server config-example.yml

osm input: 27 mb size pbf file for Wroclaw, Poland
request url: /route?point=51.115162%2C16.982203&point=51.097863%2C17.040653&type=json&locale=pl-PL&vehicle=car&weighting=fastest&elevation=false&key=

config file: default from 0.13

Here you can find screens from visual vm with threads utilization and cpu and also results of load test:

Is that info about ~150req/sec outdated? Or do i do sth wrong? Looks like cpu is not used heavily and also worker threads are waiting but response times is increasing, it looks like it’s blocked somehow and not correctly optimized, am I right? Can I change number of threads in pool? Where is the bottleneck?

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.