টাইলস ক্যাচিং গতি বৃদ্ধি করুন (টাইলস্ট্যাচ)


13

আমি টাইলস্ট্যাচ ব্যবহার করে ভেক্টর টাইলগুলি পরিবেশন করছি , আমার মতো আমার মতো সমস্ত কিছু সেট আপ হয়েছে। আমার ডেটা সংরক্ষণ করা হয় Postgres এবং আমি ব্যবহার করছি VecTiles প্রদানকারী সেবা করার GeoJSON টাইলস।

টাইলগুলি আরও দ্রুত পরিবেশন করতে আমি আমার সমস্ত টাইলগুলি ক্যাশে করতে চাই। আমি আমার ক্যাশে বীজ করতে টাইলস্ট্যাচ-সিড.পি ব্যবহার করছি । আমি বেশ কয়েকটি মেশিনে টাইলস্ট্যাচ-বীজ চালাচ্ছি । টাইলস্টেচ-বীজটি জুম স্তরের ১৩ স্তর পর্যন্ত সত্যই ভাল কাজ করেছে, তবে এর পরে টাইলগুলি ক্যাশে করতে খুব বেশি সময় লাগছে। কেবলমাত্র জুম স্তরের 16 এর জন্য আমার ক্যাশে 5023772 টাইল রয়েছে এবং আমি প্রতিটি মেশিনে প্রতিদিন 100k-200k টাইল পাচ্ছি।

আমি কীভাবে আমার টাইলগুলি ক্যাশে দ্রুত করতে পারি ? টিউনস্টেচ-সিড.পি টিউন সুরক্ষিত এবং দ্রুত বীজ বানানোর কোনও উপায় আছে কি ?

আপডেট: আমি আমার টেবিলগুলিতে স্থানিক সূচকগুলি তৈরি করার চেষ্টা করেছি (জ্যামিতি কলাম এবং যেখানে কলমের মাধ্যমে ডেটা ফিল্টার করার জন্য ব্যবহৃত কলামগুলি) এবং এখনও আমি টাইলিং গতির তেমন উল্লেখযোগ্য বৃদ্ধি পাইনি। এই হারে কেবল জুম 17 আমাকে এক মাস সময় দেবে এবং আমি যখন জুম 21 এর দিকে যাচ্ছি তখন এই সময়টি কেবলমাত্র তাত্পর্যপূর্ণভাবে বাড়বে

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

হার্ডওয়্যার ইনফো আমি 8 টি পৃথক পিসিতে ক্যাচিং প্রক্রিয়া চালাচ্ছি যার মধ্যে একটি আই জি 732 জিবি র‌্যাম এবং অন্যটি 4 জিবি র‌্যাম সহ আই 3 তবে তারা উভয়ই আমাকে প্রায় একই ক্যাশিং গতি দেয় (প্রতিদিন প্রায় 100 কে টাইলস)

উত্তর:


5

আমি বলব যে 15 এরও বেশি জুমের জন্য, আপনি যদি নিজের আগ্রহের ক্ষেত্রটি ছোট অঞ্চলে (বাউন্ডিং বক্স) বিভক্ত করেন তবে আপনি একক মেশিনে একাধিক প্রক্রিয়া চালিয়ে অনেক কম সময়ে সেগুলি ক্যাশে রাখতে সক্ষম হবেন।

উদাহরণস্বরূপ, আপনি একটি মেশিনে জুম 16 (50,000,00 টাইলযুক্ত) চালাচ্ছেন এবং আপনার গড় টাইল-ক্যাশিং গতি অনুসারে এই প্রক্রিয়াটি প্রায় 40-50 দিনের মধ্যে শেষ হবে। বলুন যে আপনি এই টাইলগুলিকে দুই ভাগে বিভক্ত করেছেন এবং মেশিনে এক সাথে চালনা করতে পারেন তবে আপনি 20-25 দিনের মধ্যে সেগুলি ক্যাশে রাখতে সক্ষম হবেন কারণ টাইলস্ট্যাচ সিডিং প্রক্রিয়াটি আপনার একক টাইল ক্যাচিং প্রক্রিয়ার জন্য প্রসেসরের প্রায় 30 শতাংশ ব্যবহার করে এবং আমি জানি এটি কারণ আমার একবারে একই সমস্যা রয়েছে এবং কিছুটা অবধি আমার সমস্যাটি সমাধান করেছে।

আপনি যদি কোনও মেশিনে বা একাধিক প্রক্রিয়াতে একক প্রক্রিয়া চালাচ্ছেন তবে সিপিইউ ব্যবহার বাড়ানো হবে এটি টাইল-ক্যাচিং গতির প্রভাব ফেলবে না।

আমি আশা করি এটা তোমাকে সাহায্য করবে।


এখন পর্যন্ত করা সবচেয়ে ভাল কাজ বলে মনে হচ্ছে, আমি এটি চেষ্টা করে দেখুন কি হবে তা দেখুন check
হাসান মোস্তফা

এটি এখন পর্যন্ত আমি খুঁজে পেয়েছি এটি সেরা সমাধান, যদিও এটি আদর্শ নয় (এটি আমি টাইলস্ট্যাচ-সিড.পি ফিনেটুন করতে পছন্দ করতাম) এটি যথেষ্ট ভাল কাজ করে।
হাসান মোস্তফা

2

ডিফল্টরূপে shp2pgsql সূচী তৈরি করে না। -Iএটি একটি স্থানিক সূচক তৈরি করতে আপনাকে পাস করতে হবে। http://postgis.net/docs/manual-1.3/ch04.html#id435762

আপনার টেবিলের \d tablenameপিএসএইচএল চালিয়ে সূচি রয়েছে কিনা তা পরীক্ষা করুন । ইনডেক্সের তালিকায় "গিস্ট" (আপনার ভিন্ন সূচকটি বেছে না নেওয়া) এবং আপনার জ্যামিতির কলামের নামের সাথে একটি লাইন হওয়া উচিত।

আপনি সত্যের পরে একটি যুক্ত করতে পারেন, দেখুন http://postgis.net/docs/manual-1.3/ch03.html#id434676 (ক্ষয়ক্ষতি সম্পর্কে নোটটি আপনাকে ভয় দেখাতে দেবে না):

CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );

যেহেতু আপনি সম্ভবত আপনার ক্যোয়ারীতে অবাস্তব কলামগুলিও ব্যবহার করেন, আপনি সাধারণত প্রতিটি কলামের জন্য সূচী তৈরি করতে চান যা দেখার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, যদি আপনার মতো কোনও প্রশ্ন থাকে SELECT * FROM roads WHERE priority = 3;তবে priorityএটির জন্য একটি সূচক যুক্ত করা বিষয়গুলিকে উল্লেখযোগ্যভাবে গতি বাড়িয়ে তুলবে:

CREATE INDEX idx_roads_priority ON roads(priority);


আমি পোস্টগ্রিসে "পোস্টজিআইএস শেফিল এবং ডিবিএফ লোডার" প্লাগ-ইন ব্যবহার করেছি, এটি একটি সূচক তৈরি করেছে: তৈরি করুন সূচি স্কেল_জোম_আইডিএক্স ও স্কেল ইউএসিং জিস্ট (জিওম)। , স্বয়ংক্রিয়ভাবে যখন আমি আমার শেফফিলগুলি আমদানি করি। আমি কি অতিরিক্ত সূচী তৈরি করা উচিত?
হাসান মোস্তফা

আপনার কি অনেক সারি আছে? আপনার ভেক্টর টাইল প্রজন্ম কি অন্যান্য বৈশিষ্ট্যগুলির উপর নির্ভরশীল (যেমন ডেটার উপস্থাপনা)?
বাগম্যানট 123

হ্যাঁ উভয়ই, আমার কয়েকটি সারণীতে প্রচুর সারি রয়েছে, আমার পিওআই টেবিলটিতে প্রায় 975k সারি রয়েছে এবং পোস্টগ্র্যাসে আমদানির আগে আমার রাস্তার শেফফাইলটি 8.5 জিবি ছিল। আমি জুম স্তরের উপর ভিত্তি করে ফিল্টার ডেটাতে প্রশ্নের ব্যবহার করছি: "10": "নির্বাচন করুন wkb_geometry আঃ জ্যামিতি , অগ্রাধিকার, নাম, route_num সড়ক থেকে অগ্রাধিকার (5,4,3)" এই একটি ক্যোয়ারী আমি রাস্তা ফিরতে ব্যবহার করছি হয় জুম স্তরে 10
হাসান মোস্তফা

তারপরে আপনি যেখানে যেখানে একটি ক্লজ ব্যবহার করেন তা প্রতিটি কলামে একটি সূচক তৈরি করুন। প্রয়োজনে আপনি মাল্টি-কলাম-ইনডেক্সও তৈরি করতে পারেন।
বাগম্যানট 123

আমি কীভাবে এটি করতে যাব, কোন ভিত্তিতে আমাকে সূচিগুলি তৈরি করা উচিত?
হাসান মোস্তফা

1

আরেকটা জিনিস যদি আপনি ব্যবহার করছেন একটি প্রমিত ক্যোয়ারী তৈরি করছে একটি ক্যোয়ারী থেকে দেখুন রূপায়িত, এবং যে থেকে আপনার টাইলস বিল্ডিং চেষ্টা: http://www.postgresql.org/docs/9.3/static/sql-creatematerializedview.html

এটি যা করবে তা আপনাকে একটি সারণী তৈরি করে যা ক্যোয়ারী সংরক্ষণ করে (যাতে আপনি ভবিষ্যতে এটি সম্ভাব্য আপডেট করতে পারেন)। শিশু এমভিগুলিতে আপনার স্থানিক সূচক রয়েছে তা নিশ্চিত করুন এবং তারপরে আপনি যতটা সম্ভব দ্রুত হয়ে উঠবেন।

যা ঘটতে পারে তা হ'ল আপনার একটি স্থানিক সূচক রয়েছে, তবে তারপরে আপনি কেবলমাত্র কিছু ডেটা নির্বাচন করছেন, যার অর্থ আপনি আর স্থানিক সূচকটি ব্যবহার করছেন না ...


আমার কাছে 11 টি আলাদা টেবিল রয়েছে যা আমি আমার টাইলস তৈরির জন্য জিজ্ঞাসা করছি, এর অর্থ কি আমার 11 টি বস্তুগত দৃষ্টিভঙ্গি করতে হবে? এবং আমার প্রশ্নগুলিও জুম স্তরের উপর ভিত্তি করে পরিবর্তিত হয়।
হাসান মোস্তফা

ভাল যদি এটি পর্যাপ্ত দ্রুত না হয় তবে সম্ভবত ধীরতম নির্বাচিত বিবৃতিগুলি দেখানো এটি উন্নত করতে সক্ষম হবে। নোট করুন যে আপনি যদি প্রয়োজন হয় তবে একাধিক টেবিল থেকে অন্য কোনও নির্বাচনী বিবৃতিতে এমভি তৈরি করতে পারেন।
অ্যালেক্স লেথ

সুতরাং আমি যদি আমার সমস্ত প্রশ্নের ভিত্তিতে একটি একক এমভি তৈরি করি তা কি কাজ করবে?
হাসান মোস্তফা

আপনি এটা করতে পারবেন না। আপনার ধীরতম ক্যোয়ারির জন্য একটি করুন, সম্ভবত একটি একক জুম স্তরের জন্য, এবং দেখুন এটি আমাকে আরও দ্রুত করে তোলে কিনা।
অ্যালেক্স লেথ

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