Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Challenges and questions from @stevo01 #26

Closed
gakowalski opened this issue Mar 18, 2019 · 3 comments
Closed

Challenges and questions from @stevo01 #26

gakowalski opened this issue Mar 18, 2019 · 3 comments

Comments

@gakowalski
Copy link
Contributor

Biggest challenges that I observed:

  • Import of the whole continent ( or planet ) needs long time. Not clear how to "tune" import process for particular machine.
  • Find a strategy to keep database up to date after initial import.
  • Find a way how to reproduce the setup of tile server on different machine (docker should be the solution here right?)
  • Diagnostics: How to recognise that something is not working, indicate problems to server owner and how to find the reason.

My questions:

  • do you plan to setup and maintain own tile server or do you know someone who runs a tile server for a long period of time?
  • can we share results of our investigations and try to find "best practice" method.
@gakowalski
Copy link
Contributor Author

My answers:

Biggest challenges that I observed:

  1. Import of the whole continent ( or planet ) needs long time. Not clear how to "tune" import process for particular machine.

I've found out that turning off autovacuum in PostgreSQL speeds up import process by ~13% and switching to PostgreSQL 11 instead od 10 speeds up by another ~3%. Turning off autovacuum is quite simple, see this commit: pot-gov-pl@662ce85 (removing 4 lines of sudo in this commit was an error reverted in the next commit: pot-gov-pl@42b5783).

Switching to PostgreSQL 11 is here: pot-gov-pl@110a540 (alas, it does not include edits in Makefile).

There may be other ways, but I did not focus on finding them.

  1. Find a strategy to keep database up to date after initial import.

I haven't figured it out yet. This is a topic that I will have to deal with, because I have to update the server in the organization for which I work.

  1. Find a way how to reproduce the setup of tile server on different machine (docker should be the solution here right?)

Docker is the solution.

  1. Diagnostics: How to recognise that something is not working, indicate problems to server owner and how to find the reason.

You can monitor the consumption of resources by the container and check the logs. I use Portainer for container management and I can easily do some monitoring and log reading there. I think there are probably other container management applications that can manage it even better.

Actually, the reason for some of my changes in the container prepared by @Overv , was just that while monitoring the server I saw that something works very badly when network traffic increases for a short time (eg. 2000 users in the same time for 5 minutes). 8+ threads got allocated and there was a constant 100% load on all cores even after traffic decreased.

My questions:
5. do you plan to setup and maintain own tile server or do you know someone who runs a tile server for a long period of time?

I have been maintaining the tile server for at least half a year. However, I was interested only in the area of my country, I did not undertake to serve a larger area.

  1. can we share results of our investigations and try to find "best practice" method.

Of course! Let's use the GitHub public space for this, so that others can use it and join our efforts.

@stevo01
Copy link
Contributor

stevo01 commented Mar 19, 2019

Thanks for feedback! Some month ago I followed the instructions from switch2osm and was able to setup a tile server in a virtual machine for test purposes). I tested the docker container from Overv yesterday and it worked like “plug and play” and saves a lot of time. In the future I would like to use the solution for "whole planet" and I think the container is a good base to start.

note: I added some benchmark test results from osm imports on my machine und instructions for the usage of the container which could be useful for other users.

@stevo01
Copy link
Contributor

stevo01 commented Mar 25, 2019

just for information: logfile import europa latest

  • Machine: AMD Ryzon 8 Core, 64GByte RAM, 1TB NVMe
  • docker image size after import: around 500G
  • overall time 17.2 hours
  • used docker container 3fc7120

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants