This document describes how to set up a system for evaluating overall tile generation performance using one-system docker-based setup, i.e. in Google Cloud.
you need install gcloud utility, and login into your Google account.
Additional notes:
- See GCP machine types for the
MACHINE_TYPEsetting. Then1-highmem-2uses an older 2-CPU machine with max memory. Full planet should use a bigger machine. - The
VM_DISK_SIZEshould fit OS + Apps + Data. - See gcp test script
export GOOGLE_PROJECT_ID=<my_project> # Set to your GCP project name
export GOOGLE_ZONE_NAME=us-central1-c # Which zone to use for the new VM
export TEST_VM_NAME=omt-test # Name of the VM to create
export VM_DISK_SIZE=25GB # VM disk size
export MACHINE_TYPE=n1-standard-1 # Type of GCP VM to create
cd openmaptiles-tools/docs # The current dir must contain the startup scriptCreate a new virtual machine and run startup script on it.
gcloud compute instances \
create $TEST_VM_NAME `# Create new VM with this name` \
--project $GOOGLE_PROJECT_ID `# in this GCP project` \
--zone $GOOGLE_ZONE_NAME `# and in this VM zone` \
--image-family ubuntu-2004-lts `# use latest base image` \
--image-project ubuntu-os-cloud `# ` \
--boot-disk-size $VM_DISK_SIZE `# Enough to fit OS+apps+data` \
--boot-disk-type pd-ssd `# Use faster SSD disks (more expensive)` \
--machine-type=$MACHINE_TYPE `# Specify machine hardware` \
`# Set boot script and required metadata` \
--metadata-from-file startup-script=gcp_test_startup.shLogin into the newly created VM. The OpenMapTiles and OpenMapTiles-tools repos will be automatically cloned on the first login.
# SSH to the machine, and proxy port 8090 to it for testing
gcloud compute ssh --project $GOOGLE_PROJECT_ID $TEST_VM_NAME --zone=$GOOGLE_ZONE_NAME -- -L 8090:localhost:8090
# if you don't see openmaptiles files, logoff/login - the script hasn't finished yet
ls
# See if the startup script completed ok
sudo tail -f -n 1000 /var/log/syslog | grep 'startup-script:'Note that the script automatically starts tmux session, so in the event of disconnect your work will not be lost.
Once started and docker is accessible with docker ps command, check out the needed git branch and create the database.
To test a pull request, go to the bottom of the PR page, click command line instructions, and copy/paste step 1.
# Create a new database that is already pre-loaded with some data
make start-db-preloaded
# **** OR **** you can start from scratch with these two commands:
# make start-db # create new blank database
# make import-data # import all pre-packaged data
make all # create needed files
make bash # Connect to tools to run commands directly
# inside tools shell:
download-osm monaco -o /import/monaco.pbf # download some data
import-osm # import data file
import-wikidata openmaptiles.yaml # import wikidata labels for mentioned data
import-sql # run sql files to update indexes
exit
# start postserve and view the real time results in Maputnik
make start-postserve
# Start monitoring postserve (stop with Ctrl+C)
docker logs openmaptiles_postserve_1 -fNow open https://maputnik.github.io/editor/, click Data Sources, and at the very TOP modify TileJSON URL to http://localhost:8090, and click the X in the upper right corner. Observe tile requests in the log. The -L 8090:localhost:8090 ssh parameter in gcloud command above is what proxies tile requests from your local machine to the server.