Como otimizar a renderização do Openstreetmap Tile?

8

Atualmente, estou tentando renderizar Water (3.198.333 registros) e fronteiras mundiais detalhadas (processadas_p) para o mundo. Consigo renderizar as duas camadas, mas não estou feliz com o desempenho.

Minha configuração atual é a seguinte:

  • Instância do Amazon EC2 (m2.2xlarge)
  • 34,2 GB de memória
  • 13 unidades de computação EC2 (4 núcleos virtuais com 3,25 unidades de computação EC2 cada)
  • 850 GB de armazenamento de instância
  • Plataforma de 64 bits
  • Desempenho de E / S: Alto
  • Mapnik, 4 tópicos
  • Configurações do Postgresql com base nesses benchmarks
  • Índice GiST em vigor para todas as minhas camadas

Algumas das minhas idéias para aumentar o desempenho :

  • Simplificando meus recursos
  • Não renderize peças de água - quando o carregamento com camadas abertas pode definir a falha de carga na cor azul
  • Divida as características da água do mundo em várias seções e explique explicitamente aos limites do mapnik. Por exemplo, se eu separar os recursos hídricos da América do Norte, quando o Mapnik estiver gerando blocos para a Austrália, ele não deverá consultar a América do Norte para ver se algum de seus recursos está nos blocos.
  • Minha segunda ideia é um pouco mais louca. Como o Mapnik executa uma consulta espacial para cada bloco, a fim de encontrar recursos a serem processados, eu posso executar essa consulta antecipadamente para todas as minhas camadas. Eu assumiria que isso economizaria algum poder de processamento.

Minha pergunta: O que mais posso fazer para otimizar a renderização de blocos?

RK
fonte
Você já viu o "Optimize Rendering with PostGIS" github.com/mapnik/mapnik/wiki/OptimizeRenderingWithPostGIS para obter algumas dicas?
Mapperz
Oi Mapperz. Sim, certifiquei-me de carregar apenas recursos de água no meu banco de dados. Portanto, todos os meus polígonos e linhas já são pré-filtrados e são recursos de água. Também aspirei meu banco de dados e apliquei os índices sugeridos.
Oi, eu não usei o Mapnik antes, mas se for possível armazenar em cache blocos em alguns níveis de zoom ou em determinadas áreas, ele melhorará o desempenho.
dango

Respostas: