মঙ্গোডিবি: র‌্যামের প্রয়োজনীয়তা


20

মেমোরি / র‌্যামে সম্পূর্ণ সূচক থাকা কি যথেষ্ট বা মংডব এমনকি দ্রুত পাঠের জন্য ডেটা সঞ্চয় করার জন্য যতটা সম্ভব র‌্যাম বরাদ্দ করার চেষ্টা করে?

আমি মঙ্গডব + অন্যান্য অ্যাপ্লিকেশন চালাতে চাই এবং মনে হচ্ছে মঙ্গোদবই একমাত্র যা আমাকে "সর্বোচ্চ_মেমোরি_লোক্যাট_অর_রক্ষিত = 8 গিগাবাইট" বলতে দেয় RAM

যদি এটি করার কোনও উপায় না থাকে, তবে আমি ওম-কিলারকে বোঝাতে হবে যে মঙ্গোদ হ'ল "খারাপ" প্রক্রিয়া যা আমার মতে সবচেয়ে ভাল অনুশীলন নয় ...

উত্তর:


18

আপনি যেমন জিজ্ঞাসা করলেন (মেমরি সীমাবদ্ধ করুন) আপনি কেন এটি করতে পারবেন না তার আসল কারণ হ'ল মংগোডিবি সরাসরি ব্যবহার করা মেমরিটি পরিচালনা করে না - এটি ওএসকে এটি করতে দেয়। মঙ্গোডিবি কেবল মেমরির সমস্ত তথ্য ম্যাপ করে এবং তারপরে ওএস পৃষ্ঠাটি এটি মেমরির প্রয়োজন অনুসারে এবং বাইরে রাখে। ফলস্বরূপ, মঙ্গোডিবি সম্পূর্ণ ভিন্ন উপায়ে এটি প্রয়োগ না করা পর্যন্ত যত পরিমাণ পরিমাণ সম্ভব ব্যবহার করা হয় তার সরাসরি পরিচালনা নেই, বা ওএস এটি অনুমতি দেয় (২.৪ দিনের পর থেকে লিনাক্সে সম্ভব নয়)।

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

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

https://docs.mongodb.com/manual/administration/production-notes/#swap

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

http://mms.mongodb.com

আপডেট: আগস্ট 2015

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

অতিরিক্তভাবে, মঙ্গোডিবি 3.0+ তে ওয়্যার্ডটাইগারের মতো এমএমএপি ছাড়িয়ে নতুন স্টোরেজ ইঞ্জিনগুলির আগমন সহ আপনি মঙ্গোডিবি-র জন্য ক্যাশের আকার সীমাবদ্ধ করতে বিল্ট-ইন কার্যকারিতাটি ব্যবহার করতে পারেন । সুতরাং, এখন র‌্যামের প্রয়োজনীয়তাগুলি আপনি কীভাবে মঙ্গোডিবি কনফিগার করতে চান, কী পরিবেশে আপনি এটি চালাচ্ছেন এবং কোন স্টোরেজ ইঞ্জিনটি চয়ন করেন তার উপর নির্ভর করে।


ওয়্যার্ডটাইগার সম্পর্কিত: "স্টোরেজ.ওয়ায়ার্ডটাইগার.ইঞ্জিনকনফিগ। ক্যাচি সাইজ জিবি কেবল ওয়্যার্ডটাইগার ক্যাশের আকার সীমাবদ্ধ করে না, মঙ্গোদ দ্বারা ব্যবহৃত মোট মেমরির পরিমাণটি নয় W ওয়্যারটেড টাইগার ক্যাশে মোংগোডিবি দ্বারা ব্যবহৃত র্যামের কেবলমাত্র একটি উপাদান Mong মোংগোডিবিও স্বয়ংক্রিয়ভাবে সমস্ত ব্যবহার করে ফাইল সিস্টেমে ক্যাশে মেশিনে ফ্রি মেমরি ... "
স্টিফান রোগিন

ঠিক আছে, তবে কোনও অ্যাপ্লিকেশন সম্পর্কে একই কথা বলা যেতে পারে যে ডিস্কের বাইরে থাকা পৃষ্ঠাগুলির তথ্য, এফএস ক্যাশে এখন আর ডেটাগুলির জন্য প্রাথমিক ক্যাচিং পদ্ধতি নয় কারণ এটি একবার এমএমএপি স্টোরেজ ইঞ্জিনে মেমরিযুক্ত ম্যাপযুক্ত ফাইলগুলির সাথে ছিল
অ্যাডাম সি

6

মোঙ্গোডিবি একই সার্ভারের অন্যান্য অ্যাপ্লিকেশনগুলিতে মেমরি আনতে প্রয়োজন হিসাবে ক্যাচিংয়ের জন্য উপলব্ধ বিনামূল্যে মেমরি ব্যবহার করবে এবং ডিস্কে অদলবদল করবে। সেরা পারফরম্যান্সের জন্য আপনার সূচকগুলি এবং ঘন ঘন ব্যবহৃত ডেটা ("ওয়ার্কিং সেট") মেমরিতে রাখার জন্য আপনার যথেষ্ট পরিমাণে র‌্যাম থাকতে হবে।

সহায়ক পড়া:


3

মোংগোডিবি সম্পর্কে বছরগুলিতে কিছু পরিবর্তন হয়।

টি এল; ডিআর

যদি এমএমএপিভি 1 স্টোরেজ ইঞ্জিনটি মঙ্গোডিবি working setআকারে ব্যবহৃত হয় তবে অবশ্যই র‍্যাম ফিট করতে হবে । https://docs.mongodb.com/manual/faq/diagnostics/#must-my-working-set-size-fit-ram

যদি ওয়্যার্ডটাইগার স্টোরেজ ইঞ্জিনটি মঙ্গোডিবিতে ব্যবহৃত হয়, তবে র‌্যামের জন্য উপযুক্ত কিনা তা নিয়ে চিন্তার দরকার working setনেইhttps://docs.mongodb.com/manual/faq/diagnostics/#memory-diagnostics-for-the-wiredtiger-storage-engine

ওয়্যার্ডটাইগার স্টোরেজ ইঞ্জিনের জন্য মেমরি ডায়াগনস্টিকস

আমার ওয়ার্কিং সেট সাইজের ফিট কি র‌্যাম লাগবে?

না।

আমার অ্যাপ্লিকেশনটির জন্য আমার কতটা র্যাম প্রয়োজন তা আমি কীভাবে গণনা করব?

ওয়্যার্ডটাইগার সহ, মঙ্গোডিবি ওয়্যার্ডটাইগার অভ্যন্তরীণ ক্যাশে এবং ফাইল সিস্টেম ক্যাশে উভয়ই ব্যবহার করে।

সংস্করণ ৩.২ এ পরিবর্তিত হয়েছে: মঙ্গোডিবি ৩.২-এ শুরু হওয়া, ওয়্যার্ডটাইজার অভ্যন্তরীণ ক্যাশে, ডিফল্টরূপে, এর মধ্যে বৃহত্তরটি ব্যবহার করবে:

র‌্যাম বিয়োগের 60% 1 জিবি বা 1 জিবি।


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