ওএসএম ডেটার জন্য osm2pgsql আমদানি অনুকূলিতকরণ


27

আমি বর্তমানে ইসি 2 তে একটি উদাহরণ তৈরি করছি যার উপর আমরা কাজ করছি এমন কিছু প্রকল্পের জন্য পুরো পৃথিবীর মূল্যবান ডেটাগুলির পুরো প্ল্যানেট.সোম স্ন্যাপশট আমদানি করতে। আমি একটি বড় উবুন্টু x64 উদাহরণ সরিয়েছি এবং পোস্টগ্রিস ডাটাবেসের জন্য একটি ইবিএস ভলিউমে প্রচুর পৃথক স্টোরেজ সংযুক্ত করেছি এবং এটিতে পিজিএসকিউএল ডেটা রাখার জন্য এটি সংশোধন করেছি।

osm2pgsqlস্ন্যাপশটটি আমদানি করতে এখন সার্ভারটিকে সমস্যা হচ্ছে ... বিভিন্ন মেমরির কনফিগারেশন এবং হোয়াট নোট দিয়ে কয়েকবার চেষ্টা করার পরেও প্রক্রিয়াটি বেশিরভাগ পথ পেরিয়ে "নিহত" আউটপুট দেয়; একবার এটি "মুলতুবি পথে চলতে গিয়ে" মারা গিয়েছিল এবং পরের বার, স্লিম ক্যাশে সামান্য সামঞ্জস্য করার পরে, এটি ক্রাশ হওয়ার আগে "প্রক্রিয়াজাতকরণের পথে" পৌঁছেছিল। আমি যা পড়েছি তা থেকে এটি সাধারণত মেমরির সমস্যার কারণে হয়।

আমদানি চালানোর জন্য আমার সর্বশেষ প্রচেষ্টা:

osm2pgsql -v -U osm -s -C 4096 -S default.style -d osm /data/osm/planet-latest.osm.bz2

এবং ইসি 2-তে এটি একটি বৃহত উদাহরণের জন্য চশমা রয়েছে:

বৃহত উদাহরণ memory.৫ গিগাবাইট মেমরি, ৪ টি ইসি ২ কম্পিউট ইউনিট (২ টি ইসি ২ কম্পিউট ইউনিট সহ ২ টি ভার্চুয়াল কোর), স্থানীয় ইনস্ট্যান্সের 850 গিগাবাইট, 64-বিট প্ল্যাটফর্ম

আমার প্রশ্নটি হল - osm2pgsql এবং Postgres এর জন্য প্রয়োজনীয় প্রয়োজনীয়তা নির্ধারণ করার জন্য কি কোনও ভাল বেঞ্চমার্ক সংস্থান আছে? আমদানির গতি আমার পক্ষেও তাত্পর্যপূর্ণ নয়, আমি প্রক্রিয়াটি নিরাপদে সম্পন্ন করে তা নিশ্চিত করতে সক্ষম হতে চাই, যদিও এটি 4 বা 5 দিন সময় নেয় ... আমি ফ্রেডরিক র্যামের " রেন্ডারিং অনুকূলকরণের মাধ্যমে পড়েছি" গত বছরের এসওটিএম থেকে চেইন "(পিডিএফ) নথি, তবে অন্য কোনও ভাল মতামত / সংস্থান আছে কি?


ইসি 2 এ করা কি খুব ব্যয়বহুল হবে না?
পাবলো

এটিকে চালিয়ে রাখা সস্তা নয়, তবে অন্তর্বর্তীকালীন পরিকল্পনাটি এটি স্পিন করে তোলা, একটি টাইলসেট তৈরি করা তারপরে এটি বন্ধ করে দিন এবং সেটটি কিছুক্ষণের জন্য ব্যবহার করুন যতক্ষণ না আমাদের আপডেটগুলি প্রয়োগ করার প্রয়োজন হয়। এটি এখনও একটি বিশাল সার্ভার কেনার চেয়ে অনেক সস্তা ...
colemanm

1
মজাদার! আমি আমার পুরানো এক্সপি-হোম-বক্সে কখনও চেষ্টা করে দেখিনি। এটা কি সত্যিই কাজ করে? আমি জিজ্ঞাসা করছি কারণ এটি জিওফ্যাব্রিক বা ক্লাউডমেড থেকে এক্সট্র্যাক্টগুলি পুরো গ্রহের জন্য নয় রূপান্তর করতে লেখা হয়েছিল। গ্রহটি অবৈধ এক্সএমএল বলে মনে হচ্ছে। আপনি কীভাবে এই সমস্যার সমাধান করলেন?

@ কার্স্টেন আপনার প্রতিক্রিয়াটি কোনও মন্তব্য ফর্মে স্থানান্তরিত করার সময়, আমি অজান্তেই @ জাভানজেল্ড দ্বারা একটি মন্তব্য মুছে ফেলেছি। এটি এখানে: হাই কার্স্টেন, জিআইএসএস তে আপনাকে স্বাগতম। এটি যখন দুর্দান্ত বিকাশকারীরা তাদের প্রোগ্রামগুলির সাথে লোকদের সহায়তা করতে আসে তখন এটি দুর্দান্ত। তবে আপনার উত্তরটি এখানে @ উইন্ডোয়েডের পোস্টে মন্তব্য হিসাবে ভাল হতে পারত। আবার, আপনার এখানে রাখা খুব ভাল!
হুড়হুড়ি করে

উত্তর:


8

ডকুমেন্টেশন যেমন বলেছে এটি করতে আপনার 256gb এরও বেশি র‌্যামের প্রয়োজন হতে পারে।

আমি EC2 সম্পর্কে অনেক কিছু জানি না, কিন্তু আপনি পাতলা (--slim) মোডে চেষ্টা করুন বা চেষ্টা করে দেখতে পারেন আস্রবণ

একটি আকর্ষণীয় পোস্ট রয়েছে: http://weait.com/content/build-your-own-openstreetmap-server এটি বলে, 'আপনার অবশ্যই স্লিম মোড ব্যবহার করা উচিত'।


হ্যাঁ, আমি আরও বুঝতে পারি যে আপডেটের জন্য ডিফগুলি প্রয়োগ করতে পাতলা মোড প্রয়োজন is
কোলেম্যান্ম

4

স্মৃতির সীমাবদ্ধতার কারণে আমি গ্রহ.ওসেমের রাউটিং ডেটা লোড করতে osm2pgsql ব্যবহার করার চেষ্টাও করি নি। পরিবর্তে আমি osm2po ব্যবহার করেছি:

http://osm2po.de/

বেশিরভাগ ডকুমেন্টেশন জার্মান ভাষায় তবে বেশ কিছু পরীক্ষা-নিরীক্ষার সাথে আমি এটিকে কাজে লাগাতে সক্ষম হয়েছি। ডেডিকেটেড কোর 2 কোয়াডে কয়েক দিন সময় নেয় (তবে এটি কেবল একটি থ্রেড ব্যবহার করছে)।


2

Http://aws.amazon.com/datasets/2844 - অন্য কিছুর সন্ধানের জন্য আমি নীচের দিকটি পেরিয়ে এসেছি - আমি নিশ্চিত নই যে এটি আপনাকে সাহায্য করবে কিনা বা না তবে এটি একটি সূচনা পয়েন্ট হতে পারে।


এটি অবশ্যই এখনই কাজ করতে পারে, যদিও এটি ২০০৯ সালের ...
কোলেম্যান্ম

2

পুরানো প্রাক-উত্পন্ন প্যাকেজটি ব্যবহার করা ছাড়া আপনি কি আপনার সমস্যার সমাধান পেয়েছেন? ইসি 2 দৃষ্টান্তে আমার খুব অনুরূপ সমস্যা রয়েছে বলে মনে হচ্ছে। আমি http://download.bbbike.org/osm/ থেকে পিবিএফ গ্রহটি ব্যবহার করছি

time ./osm2pgsql -S default.style --slim -d gis -C 7000 --hstore /mnt/planet/planet-latest.osm.pbf
osm2pgsql SVN version 0.70.5
...(creating db tables)
Reading in file: /mnt/planet/planet-latest.osm.pbf
Processing: Node(741920k) Way(0k) Relation(0)Killed

real    276m47.695s

আপডেট: মনে হচ্ছে আমি সমাধানটি পেয়েছি - জিজ্ঞাসিত মেমোরিটি 6 গিগাবাইটে কমিয়ে দেওয়ার পরে (প্যারামিটার-সি 6000) প্রক্রিয়াটি কাজ করে (কমপক্ষে বেশ কয়েক দিন ধরে কাজ করেছে, আজ শেষ করব) আশা করি।

মনে হচ্ছে 7.5 গিগাবাইট মেমরির সাথে m1.large উদাহরণটি সমস্ত নোডকে মেমরির সাথে ফিট করার জন্য সামান্য খুব সামান্য (যার জন্য আজকাল প্রায় 11 গিগাবাইট প্রয়োজন)। Osm2pgsql এর প্রয়োজন মেমরির অতিরিক্ত 700MB এর নিচে প্রয়োজন বলে মনে হয়, সুতরাং -C 7000 এর সাহায্যে এটি কেবল স্মৃতির সংক্ষিপ্ততায় চলমান, তবে -C 6000 (অথবা সম্ভবত - সি 6500) দিয়ে এটি কাজ করে।

এছাড়াও আমি কমপক্ষে 15 গিগাবাইট র‌্যাম সহ উচ্চতর মেমরির উদাহরণটি ব্যবহার করার পরামর্শ দিচ্ছি, এটি আমদানি আরও দ্রুত করা উচিত। অথবা এমনকি দ্বিগুণ অতিরিক্ত মেমরির উদাহরণ যা দ্বিগুণ হবে, তবে <5 ঘন্টা (স্লিম-মোডের চেয়ে প্রায় 3-4 গুণ দ্রুত) নন-স্লিম মোডে পূর্ণ গ্রহ আমদানি করতে সক্ষম হবে। সুতরাং এটি আসলে সস্তা হবে।


1

আমি কম সিপিইউ এবং আরও বেশি র‌্যাম ব্যবহার করে ইসি 2 তে কাজ করতে osm2pgsql পেয়েছি। মেমরির সমস্যার কারণে এটি ব্যর্থ হয়েছিল যতক্ষণ না আমি 17 গিগ র‌্যামের সাহায্যে অতিরিক্ত মেমরির একটি অতিরিক্ত মেমোরিতে স্থান পেলাম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.