มากกว่า

การนำเข้าข้อมูล OSM ที่ช้ามาก

การนำเข้าข้อมูล OSM ที่ช้ามาก


ฉันใช้ osm2pgsql เพื่อนำเข้าฐานข้อมูลดาวเคราะห์ทั้งหมด ฉันได้ทำตามคำแนะนำจากหน้า switch2osm ( https://switch2osm.org/serving-tiles/manually-building-a-tile-server-14-04/ ) และใช้คำสั่งต่อไปนี้:

osm2pgsql --slim -C16384 --cache-strategy sparse -d osm_2015 --number-processes 4 planet-latest-september-5.pbf

โปรดทราบว่าฉันกำลังนำเข้าบนเครื่องเสมือน (VM) รายละเอียดอื่นๆ มีดังนี้

ขนาดไฟล์ Planet: 29GB RAM: 24GB CPU: 8 X Intel(R) Xeon(R) CPU X5650 @ 2.67GHz 4TB ดิสก์ที่ติดตั้งระยะไกล OS: Ubuntu 14.04 psql (PostgreSQL) 9.3.9 PostGIS เวอร์ชัน 2.1.2

ฉันนำเข้าข้อมูลเสร็จแล้ว แต่ osm2pgsql ใช้เวลาโดยรวม 1817529 วินาทีในการนำเข้าข้อมูล ซึ่งใช้เวลาประมาณ 21 วัน!

คำถามของฉันคือ ฉันจะทำอะไรได้บ้างเพื่อเพิ่มประสิทธิภาพ/ลดเวลาในการนำเข้าในอนาคตโดยใช้ข้อกำหนดที่ระบุไว้ข้างต้น โปรดทราบว่าฉันยังใหม่กับสิ่งนี้


ฉันไม่แน่ใจว่าคุณได้บรรทัดคำสั่งมาจากไหน แต่คุณมีตัวเลือกที่ไม่ได้อยู่ในคำแนะนำ

osm2pgsql --helpแนะนำosm2pgsql -c -d gis --slim -C -k --flat-nodes planet-latest.osm.pbfโดยที่ * คือ 20000 บนเครื่องที่มี RAM 24GB ขึ้นไป * คือตำแหน่งที่สามารถบันทึกไฟล์ 19GB ได้

หากคุณไม่ได้วางแผนที่จะใช้การอัปเดต คุณสามารถเพิ่ม--หยดคำสั่ง ซึ่งจะช่วยเร่งความเร็วอย่างมาก และคุณยังสามารถลบไฟล์โหนดแบบเรียบได้

ใน osm2pgsql เวอร์ชันเก่า ให้เพิ่ม--จำนวน-กระบวนการ8.

การเพิ่มความเร็วขนาดใหญ่อื่น ๆ มาจากการปรับแต่ง PostgreSQL ซึ่งเพิ่มขึ้นเป็นหลักการบำรุงรักษา_work_memและwork_memอาจเป็น 1GB และ 64MB สำหรับเซิร์ฟเวอร์ของคุณ

หากยังช้าอยู่ อาจเป็นเพราะดิสก์ของคุณช้า ดิสก์ระยะไกลสามารถมีเวลาแฝงสูง ซึ่งดูดฐานข้อมูล


บางทีมันอาจจะใช้เวลานานขนาดนั้น ฉันใช้ vagrant และ virtualbox เวลาแฝงของ IO นั้นค่อนข้างสำคัญเมื่อเทียบกับระบบไฟล์ในเครื่อง เมื่อพิจารณาตามหลักการของไฮเปอร์ไวเซอร์แล้ว VM ควรมีผลกระทบต่อประสิทธิภาพการนำเข้า ในการเพิ่มประสิทธิภาพกระบวนการ คุณสามารถตรวจสอบลิงก์นี้ http://www.geofabrik.de/media/2012-09-08-osm2pgsql-performance.pdf ซึ่งน่าจะเป็นประโยชน์


ดูวิดีโอ: Editing OSM data for proper import into Maperitive