User:Mmd/Overpass API/Performance Project 2016/Full Day Simulation
Jump to navigation
Jump to search
Test scenario
- Basis: productive queries from overpass-api.de, dated January 16th 2016 (File: transactions.2016-01-16_00_00_01.log.gz)
- Client / Load driver:
- Python script including transaction log file parsing + feeding into producer/consumer queue
- 32 concurrent threads
- No HTTP/1.1 keep alive
- GZIP compression
- Random sleep time of 1..5 seconds after each query
- Load driver ran on dev.overpass-api.de (same provider as Overpass Server)
- 803029 total requests
- Status 200: 802903
- Status 302: 4
- Status 400: 38 (parsing issues in load driver, sending invalid requests)
- Status 404: 1 (kill_my_queries)
- Status 500: 10 (known issue: https://github.com/drolbr/Overpass-API/issues/227)
- Status 504: 73 (timeout after 15s runtime)
- Overpass Server:
- Full attic database, timestamped 2016-04-06 00:00:00
- DB Built via daily diffs, uses LZ4 compression
- Total DB size ~180GB
- DB was stored exclusively on SSD
- 32GB Main memory
- 8 Cores (Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz)
- Area creation ran before load test
- No updates/area creation during load test
- Tested on branch: https://github.com/mmd-osm/Overpass-API/tree/test754_threadupd
- FastCGI configured for Overpass API endpoint on Apache
- Dispatcher sleep time hardcoded to 1ms
- (additonal infos about relevant patches to be added)
Test run without any sleep time and 8 concurrent threads processes full day worth of queries in 14 hours at constant 90% CPU utilization.
Munin stats
Relevant changes
Comparison to 0.7.52
- Overpass Server:
- Full attic database, based on clone from dev.overpass-api.de/clone, timestamped 12 March 2016
- zlib compression, map files not compressed
- Area creation ran before load test (runtime: 13.5 hours)
- No updates/area creation during load test
- Tested on official 0.7.52 version
- CGI
- Total runtime for test: 30 hours