Saat ini saya mencoba membuat Air (3.198.333 catatan) dan batas dunia terperinci (diolah_p) untuk dunia. Saya berhasil merender kedua lapisan, tetapi saya tidak puas dengan kinerja.
Setup saya saat ini adalah sebagai berikut:
- Contoh Amazon EC2 (m2.2xlarge)
- 34.2 GB memori
- 13 Unit Komputasi EC2 (masing-masing 4 inti virtual dengan Unit Komputasi 3,25 EC2)
- 850 GB penyimpanan instan
- Platform 64-bit
- Kinerja I / O: Tinggi
- Mapnik, 4 utas
- Pengaturan postgresql berdasarkan pada tolok ukur ini
- Indeks GiST berlaku untuk semua lapisan saya
Beberapa Ide saya untuk Meningkatkan Kinerja :
- Menyederhanakan fitur saya
- Jangan render ubin air - saat memuat dengan pembuka dapat mengatur kegagalan memuat ke warna biru
- Pisahkan fitur air dunia menjadi berbagai bagian dan secara eksplisit memberi tahu mapnik tentang batasannya. Misalnya, jika saya memisahkan fitur air dari Amerika Utara, ketika Mapnik membuat ubin untuk Australia, ia seharusnya tidak meminta Amerika Utara untuk melihat apakah ada fitur-fiturnya di dalam ubin.
- Gagasan kedua saya sedikit lebih gila. Karena Mapnik melakukan kueri spasial untuk setiap ubin untuk menemukan fitur untuk diproses, saya dapat melakukan kueri ini sebelumnya untuk semua lapisan saya. Saya akan berasumsi bahwa ini akan menghemat daya pemrosesan.
Pertanyaan Saya: Apa lagi yang bisa saya lakukan untuk mengoptimalkan rendering ubin?
Jawaban:
Berikut ini beberapa tautan: http://www.geofabrik.de/media/2010-07-10-rendering-toolchain-performance.pdf
http://www.geofabrik.de/media/2012-09-08-osm2pgsql-performance.pdf
titik lain: pisahkan data menjadi lebih banyak tabel: semakin sedikit objek untuk disaring, semakin cepat rendering
sumber