মংডোব শারড খণ্ড মাইগ্রেশন 500 গিগাবাইটে 13 দিন সময় লাগে - এটি কি ধীর বা স্বাভাবিক?


9

আমার কাছে মংডব শার্প ক্লাস্টার রয়েছে, শারড কীটি হ্যাশ হয়েছে। এটিতে 2 টি শারড প্রতিলিপি সেট রয়েছে। প্রতিটি প্রতিরূপ সেটে 2 টি মেশিন রয়েছে।

আমি আরও 2 টি শারড প্রতিলিপি সেট যুক্ত করে একটি পরীক্ষা করেছি এবং এটি পুনরায় ভারসাম্য বয়ে যেতে শুরু করে।

তবে, কিছুক্ষণ পরে আমি জানতে পারি যে খণ্ড মাইগ্রেশনটি বরং ধীর হওয়া উচিত। 1.4GB ডেটা স্থানান্তর করতে 1 ঘন্টা সময় নেয়।

এটি আমাকে উদ্বিগ্ন করে তোলে, এর অর্থ হ'ল 500 গিগাবাইট স্থানান্তরিত করার জন্য আমাকে 13 দিন অপেক্ষা করতে হবে!

আমি এই স্টাফটিতে নতুন এবং আমার কোনও দেবতাই অনুভব করেন না যে এটি ধীর, দ্রুত বা স্বাভাবিক whether তবুও, এই সংখ্যাটি আমাকে বোঝায় না।

পরীক্ষায় অতিরিক্ত নোট: - এম 3 মিডিয়াম আউজ মেশিন ব্যবহার করে - অন্য কোনও প্রক্রিয়া চলছে না, কেবল খণ্ড মাইগ্রেশন - ডিফল্ট মংডব শার্পিং ইনস্টলেশন ছাড়া আর কোনও কনফিগারেশন নেই - শারডকি হ্যাশ অবজেক্ট আইডি (_আইডি) ব্যবহার করছে - সর্বাধিক খণ্ড আকার 64MB

উত্তর:


10

আপডেট: এপ্রিল 2018

প্রশ্নের উত্তরটি এই সময়ে সঠিক ছিল, তবে তখন থেকেই জিনিসগুলি এগিয়ে চলেছে। সংস্করণ ৩.৪ থেকে সমান্তরালতা চালু হয়েছে এবং আমি মূলত টিকিটটি বন্ধ করে দিয়েছি। আরও তথ্যের জন্য আমি এই সাম্প্রতিক উত্তরের কয়েকটি বিবরণ আবরণ করি । আমি উত্তরটি বাকি হিসাবে রাখব কারণ এটি সাধারণ সমস্যা / সীমাবদ্ধতার পাশাপাশি পুরানো সংস্করণে যে কারও জন্য বৈধ।

আসল উত্তর

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

অতিরিক্তভাবে, পুরো ক্লাস্টারে এক সময়ে কেবলমাত্র একটি মাইগ্রেশন ঘটছে - কোনও সমান্তরালতা নেই। সুতরাং, আপনার দুটি "পূর্ণ" নোড এবং দুটি "খালি" নোড রয়েছে তা সত্ত্বেও, যে কোনও সময় সর্বাধিক একটি মাইগ্রেশন ঘটছে (সর্বাধিক খণ্ডের সাথে শারদ এবং কমপক্ষে শারদগুলির মধ্যে)। অতএব, 2 টি শারড যুক্ত করা আপনার ব্যালেন্সিং গতির দিক থেকে কিছুই লাভ করে না এবং কেবল স্থানগুলির সংখ্যা বাড়িয়ে তোলে।

মাইগ্রেশনগুলির জন্য, খণ্ডগুলি সম্ভবত আকারে 30MiB হয় (আপনি কীভাবে ডেটা তৈরি করেন তার উপর নির্ভর করে, তবে সাধারণত এটি আপনার ডিফল্ট সর্বাধিক আকারের আকার হবে)। আপনি db.collection.getShardDistribution()সেই কয়েকটি তথ্যের জন্য দৌড়াতে পারেন এবং আপনার খণ্ডগুলি সম্পর্কে আরও বেশি তথ্য পাওয়ার উপায়গুলির জন্য আমার উত্তরটি এখানে দেখুন।

যেহেতু অন্য কোনও ক্রিয়াকলাপ চলছে না, লক্ষ্য শারড হওয়ার জন্য স্থানান্তরিত হওয়ার জন্য (সদ্য যুক্ত হওয়া শার্ডগুলির মধ্যে একটি) উত্স শারডস (মূল 2 টির মধ্যে একটি) থেকে M 30MiB ডেটা পড়তে হবে এবং কনফিগার সার্ভারগুলিকে আপডেট করতে হবে নতুন কাজ শেষ হয়ে গেলে এটি প্রতিফলিত করুন। 30MiB ডেটা স্থানান্তর করা লোড ছাড়াই একটি সাধারণ সিস্টেমের জন্য খুব বেশি বাধা হওয়া উচিত নয়।

যদি এটি ধীর গতিতে হয়, তবে এরকম সম্ভাব্য কয়েকটি কারণ রয়েছে তবে ব্যস্ত নয় এমন ব্যবস্থার পক্ষে সবচেয়ে সাধারণ:

  • উত্স ডিস্ক I / O - তথ্যটি পড়ার সময় যদি ডেটা সক্রিয় মেমরিতে না থাকে তবে অবশ্যই এটি ডিস্ক থেকে পৃষ্ঠাযুক্ত করা উচিত
  • নেটওয়ার্ক - যদি ল্যাটেন্সি, রেট সীমাবদ্ধকরণ, প্যাকেটের ক্ষতি ইত্যাদি থাকে তবে পঠনটিতে বেশ খানিকটা সময় লাগতে পারে
  • টার্গেট ডিস্ক I / O - ডেটা এবং সূচকগুলি ডিস্কে লিখতে হবে, প্রচুর সূচীগুলি এটি আরও খারাপ করে তুলতে পারে, তবে সাধারণত হালকা লোড হওয়া সিস্টেমে কোনও সমস্যা হয় না
  • মাইগ্রেশনগুলির সাথে সমস্যাগুলি অবসন্ন এবং ব্যর্থ স্থানান্তর ঘটায় (কনফিগার সার্ভারগুলির সাথে সমস্যাগুলি, প্রাইমারিগুলিতে মুছে ফেলা সংক্রান্ত সমস্যা)
  • অনুলিপি পিছনে - প্রতিস্থাপন সেটগুলিতে স্থানান্তরিত করতে, উদ্বেগ লিখতে w:2বা w:majorityডিফল্টরূপে ব্যবহৃত হয় এবং এটি সন্তুষ্ট করতে আপ টু ডেট সেকেন্ডারি প্রয়োজন।

যদি সিস্টেমটি ব্যস্ত থাকে তবে মেমরির বিতর্ক, লক কনটেন্টটি সাধারণত এখানে সন্দেহজনক হয়ে উঠত।

মাইগ্রেশন কত দিন নিচ্ছে সে সম্পর্কে আরও তথ্য পেতে, যদি তারা ব্যর্থ হয় ইত্যাদি ইত্যাদি, আপনার প্রবেশদ্বারটি একবার দেখুন config.changelog:

// connect to mongos
use config
db.changelog.find()

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

পরিশেষে, খণ্ড মাইগ্রেশনের সমান্তরালতা উন্নত করার বৈশিষ্ট্যটির অনুরোধটি ট্র্যাক / আপভোট / মন্তব্য করতে, সার্ভার -৩৩55৫ দেখুন


ধন্যবাদ, এটি মোংডব ডকুমেন্টেশনের চেয়ে খণ্ড মাইগ্রেশন প্রক্রিয়াটিকে অনেক বেশি ব্যাখ্যা করে।
রেন্ডাইবজুনিয়র

আমি অবশ্যই আপনার কোর্সে যোগদান করব। :) আমি আগে যে গতির কথা বলেছি তা সম্পর্কে আপনার কী ধারণা? এটা কি স্বাভাবিক নাকি ধীর? আমি জানি এই প্রশ্নটি অনেক দিকের ভিত্তিতে আপেক্ষিক। কিন্তু আমি আপনার নিজের opinition জন্য জিজ্ঞাসা করছি
rendybjunior

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

কেবল যোগ করার জন্য মঙ্কোডিবিতে খণ্ড মিররেশনটির কম অগ্রাধিকার রয়েছে এবং এমনকি উচ্চ পারফরম্যান্স সিস্টেমে ব্যস্ত থাকলে কিছুটা সময় নিতে পারে।
আন্তোনিওস

@ অ্যান্টনিস - নিশ্চিত নন যে আপনি অগ্রাধিকার অনুসারে কী বোঝাতে চেয়েছেন, একটি খণ্ড মাইগ্রেশন হ'ল উত্স শারডের পাঠ (অন্য যে কোনও পাঠকের সমান) এবং টার্গেট শার্ডের উপর লেখা (পূর্বোক্ত রচনার উদ্বেগের সাথে), এই ক্রিয়াকলাপগুলির কোনও অগ্রাধিকার নেই বনাম অন্যদের। এগুলি ব্যস্ত সিস্টেমে ধীর হবে তবে কোনও সহজাত অগ্রাধিকারের পার্থক্যের কারণে নয়।
অ্যাডাম সি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.