Saat ini saya sedang membangun sebuah instance di EC2 untuk mengimpor seluruh snapshot Planet.osm dari seluruh data Bumi untuk beberapa proyek yang sedang kami kerjakan. Saya telah memutar contoh besar Ubuntu x64 dan melampirkan banyak penyimpanan terpisah pada volume EBS untuk database Postgres dan memodifikasinya untuk menampung data PGSQL di sana.
Sekarang server mengalami kesulitan menggunakan osm2pgsql
untuk mengimpor snapshot ... Setelah beberapa upaya dengan konfigurasi memori yang berbeda dan yang lainnya, proses terus menghasilkan "Dibunuh" setelah mendapatkan sebagian besar jalan melalui; setelah itu terbunuh ketika "pergi cara tertunda" dan waktu berikutnya, setelah sedikit menyesuaikan cache ramping, itu mencapai "cara pemrosesan" sebelum crash. Dari apa yang saya baca, ini umumnya karena masalah memori.
Inilah upaya terakhir saya untuk menjalankan impor:
osm2pgsql -v -U osm -s -C 4096 -S default.style -d osm /data/osm/planet-latest.osm.bz2
Dan berikut adalah spesifikasi untuk contoh besar pada EC2:
Memori Instance Besar 7,5 GB, 4 Unit Komputasi EC2 (2 core virtual dengan 2 Unit Komputasi EC2), penyimpanan instance lokal 850 GB, platform 64-bit
Pertanyaan saya adalah - apakah ada beberapa sumber daya tolok ukur yang baik untuk menentukan persyaratan penyetelan untuk osm2pgsql dan Postgres? Kecepatan impor bahkan tidak terlalu penting bagi saya, saya hanya ingin memastikan prosesnya selesai dengan aman, bahkan jika perlu 4 atau 5 hari ... Saya sudah membaca " Mengoptimalkan rendering dari Frederick Ramm dokumen rantai "(PDF) dari SOTM tahun lalu, tetapi apakah ada pendapat / sumber daya lain yang bagus?
sumber
Jawaban:
Sebagai dokumentasi mengatakan Anda mungkin perlu lebih dari 256GB ram untuk melakukan itu.
Saya tidak tahu banyak tentang EC2, tetapi Anda dapat mencoba mode ramping (--slim) atau mencoba Osmosis .
Ada posting yang menarik: http://weait.com/content/build-your-own-openstreetmap-server Disebutkan, 'Anda harus menggunakan mode ramping'.
sumber
Karena keterbatasan memori, saya bahkan tidak mencoba menggunakan osm2pgsql untuk memuat data routing planet.osm. Sebagai gantinya saya menggunakan osm2po:
http://osm2po.de/
Sebagian besar dokumentasi dalam bahasa Jerman tetapi dengan sedikit eksperimen saya berhasil membuatnya berfungsi. Membutuhkan beberapa hari pada Core 2 Quad khusus (tetapi hanya menggunakan satu utas).
sumber
Saya menemukan yang berikut sambil mencari sesuatu yang lain http://aws.amazon.com/datasets/2844 - Saya tidak yakin apakah itu akan membantu Anda atau tidak, tetapi itu mungkin merupakan titik awal.
sumber
Apakah Anda mendapatkan solusi untuk masalah Anda, selain menggunakan paket lama yang dibuat sebelumnya? Saya tampaknya memiliki masalah yang sangat mirip dalam contoh EC2. Saya menggunakan pbf planet dari http://download.bbbike.org/osm/
Pembaruan: sepertinya saya menemukan solusi - setelah mengurangi memori yang diminta hingga 6 GB (parameter -C 6000) proses bekerja (setidaknya telah bekerja selama beberapa hari sekarang, akan selesai hari ini saya harap).
Tampaknya contoh m1.large dengan memori 7.5GB sedikit terlalu kecil untuk memuat semua node ke memori (yang seharusnya membutuhkan sekitar 11GB saat ini). The osm2pgsql tampaknya membutuhkan di bawah 700MB ekstra untuk memori yang diperlukan, jadi dengan -C 7000 itu berjalan hanya kehabisan memori, tetapi dengan -C 6000 (atau mungkin juga -C 6500) berfungsi.
Saya juga menyarankan menggunakan contoh memori yang lebih tinggi dengan setidaknya 15GB RAM, itu harus membuat impor lebih cepat. Atau bahkan dua kali lipat contoh memori ekstra besar yang biayanya dua kali lipat, tetapi harus mampu melakukan impor planet penuh dalam mode non-ramping dalam waktu <5 jam (sekitar 3-4 kali lebih cepat daripada mode ramping). Jadi sebenarnya akan lebih murah.
sumber
Saya menggunakan osm2pgsql untuk bekerja pada EC2 menggunakan lebih sedikit CPU dan lebih banyak RAM. Itu gagal karena masalah memori sampai saya menaikkan instance ke memori besar ekstra besar dengan 17 gigs of ram.
sumber