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?
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