16 গিগাবাইট র্যামের দ্বৈত কোয়াড কোর XEON এ আপনি সেন্টপস ইনস্টলটি কতটা দিতে পারবেন যা মাইএসকিএল ব্যাকএন্ড - মাঝারি / ভারী লোড সহ পিএইচপি ওয়েবসাইট চালাচ্ছে?
16 গিগাবাইট র্যামের দ্বৈত কোয়াড কোর XEON এ আপনি সেন্টপস ইনস্টলটি কতটা দিতে পারবেন যা মাইএসকিএল ব্যাকএন্ড - মাঝারি / ভারী লোড সহ পিএইচপি ওয়েবসাইট চালাচ্ছে?
উত্তর:
গিগ বা দু'টির চেয়ে বেশি নয় - আপনি কেবল সামান্য ক্ষেত্রে কিছুটা অদলবদল পেতে চান এবং কারণ এটি জিনিসগুলিকে কিছুটা আরও ভালভাবে কাজ করতে সহায়তা করে তবে আপনি যদি কখনও এমন পর্যায়ে পৌঁছান যেদিকে আপনি ভারী অদলবদল করছেন, মেশিনটি চলছে অকেজো হতে - এবং একটি সত্য বিপর্যয়কর পরিস্থিতিতে, আপনি একটি ছোট অদলবদল স্থান সঙ্গে আসলে ভাল ভাল, কারণ আপনি পরে OOM ঘাতককে আরও শীঘ্রই ট্রিগার করতে হবে।
আমি খুব দীর্ঘ উত্তরের জন্য ক্ষমা চাইছি। আমি কিছুক্ষণের জন্য এই জিনিসটি কোথাও অ্যাক্সেসযোগ্য রাখতে চাইছি!
TLDR; তাত্ত্বিকভাবে বলতে গেলে, উত্তরটি হবে "আপনার সমস্ত অ্যাপ্লিকেশন ব্যবহার করতে চান মোট আবাসিক মেমরির চেয়ে কম নয়"
আপনি আমার সাথে থাকলে আমি ব্যাখ্যা করার চেষ্টা করব ..
ভার্চুয়াল মেমরি সম্পর্কে কিছুটা
অদলবদুর মূল্য কী এবং এর উদ্দেশ্য কী তা নিয়ে আজকাল প্রচলিত ভুল ধারণা রয়েছে বলে আমি মনে করি। এটি প্রায়শই বিবেচনা করা হয় যে অদলবদল মেমরির জন্য 'রিজার্ভ ব্যাংক' হিসাবে বোঝানো হয় যখন আপনার স্মৃতিশক্তি কম থাকে। হ্যাঁ, এটি আংশিক সত্য, তবে কার্নেল আপনার অদলবদাকে রিজার্ভ ব্যাংক হিসাবে ব্যবহার করতে চায় না । অতিরিক্তভাবে কার্নেল আপনার পরে থাকা ডেটা পাওয়ার জন্য কখনই ডিস্কের আবেদন করতে চায় না!
অ্যাপ্লিকেশন স্পেসে, কার্নেলটি মেমরির মধ্যে রাখবে এমন অনেকগুলি বিষয় রয়েছে।
মেমরি পরিচালনার উদ্দেশ্যে, মেমরির বরাদ্দকে কোনও সমর্থনকারী ডিভাইস দ্বারা কোনও না কোনও আকারে ব্যাক করা হয়।
ফাইল ব্যাকড মেমরি হ'ল মেমোরি যা কোনও ফাইল থেকে আসে এবং একটি সাধারণ ও / এস সিস্টেমে মেমরির বিশাল পরিমাণ বরাদ্দ করে। এটি ভাগ করা লাইব্রেরিগুলির মতো ফাইলগুলি অন্তর্ভুক্ত করা হয়েছে যা লোড করা হয়েছে, ডিস্ক থেকে পড়া ফাইলগুলি এবং পৃষ্ঠা ক্যাশে এবং ফাইলগুলি ডিস্ক থেকে এমএম্যাপ করা আছে (প্রকৃতপক্ষে, কার্নেলটি পৃষ্ঠার ক্যাশে থাকা ফাইলগুলির মধ্যে পৃষ্ঠাগুলির কোনও পার্থক্য রাখে না এবং ফাইলগুলি মূলত ম্যাপ করা ফাইলগুলি থাকে) একই জিনিস).
কার্নেলের অবস্থান থেকে এই মেমোরিটি সম্পর্কে দুর্দান্ত জিনিসটি হ'ল এটির নিষ্পত্তিযোগ্য, অন্য কোনও কিছুর জন্য আপনার যদি মেমরির প্রয়োজন হয় তবে এই পৃষ্ঠাগুলি ফেলে দেওয়া সম্ভব হবে এবং হঠাৎ স্মৃতির প্রয়োজনের ভিত্তিতে পৃষ্ঠা ক্যাশে ঠিক এটিই করে।
বেনামে ব্যাকড স্মৃতি একটি আলাদা বিষয় is এই অঞ্চলটির স্মৃতিটি বেনামে রয়েছে, কারণ ডিস্কে কোনও ফাইল নেই যা আসলে এই ডেটা ধারণ করে। এটি সাধারণত অ্যাপ্লিকেশন স্ট্যাক, হিপস, টিএমপিএফ এবং এমএম্যাপ করা ডেটা যা ব্যক্তিগত এবং তা সংশোধন করা হয়েছে (যেহেতু এটি এই জিনিসটিকে ডিস্কে ফিরে সিঙ্ক করতে পারে না) দিয়ে তৈরি। যেহেতু ফাইল পৃষ্ঠায় পরিবর্তন করার জন্য এই পৃষ্ঠাগুলি লিখতে কেবলমাত্র কোনও বৈধ ফাইল নেই, বেনামে ব্যাকড মেমোরিটি সোয়াপ মিডিয়া দ্বারা ব্যাক করা হয়।
এখন, কার্নেল জানে যে যখন মেমরির ঘাটতি থাকে, তখন ফাইল ব্যাকড মেমোরিটি অপরিচিতভাবে ম্যাপ করা মেমরিটি খনন করা খুব বেশি সস্তা, কারণ বেনামে তথ্য ফাইল ব্যাকড ডেটার চেয়ে "নোংরা" হওয়ার সম্ভাবনা বেশি থাকে, আসলে ডিফল্টরূপে কার্নেলটি ফাইল ব্যাকড মেমোরির চেয়ে বেনামে ব্যাকড মেমোরিটিকে ৮০ গুণ বেশি মূল্যবান বলে রেট দেয় এবং এটি আসলে অদলবদল সংশোধক লিনাক্সের ক্ষেত্রে কী করে ( অদলবদল প্যারামিটারটি ঠিক কী পরিবর্তন করছে কিনা তা জানতে এখানে এই পোস্টটি দেখুন )।
সবচেয়ে খারাপ পরিস্থিতি
যখন কোনও সার্ভার নিয়ন্ত্রণের বাইরে চলে যায় এবং ওওমিংয়ের পরিস্থিতি সবচেয়ে খারাপ হয় তখন এটি মেমরি বরাদ্দকরণের অনুরোধগুলির সম্মানের চেয়ে আই / ও অনুরোধগুলি পরিচালনা করতে অনেক বেশি সময় ব্যয় করে। দুটি শর্ত রয়েছে যা এই মাপদণ্ডকে প্রার্থনা করতে পারে।
প্রথমটি হ'ল সমস্যাটি সাধারণত চিন্তা করা। এটি হ'ল যেহেতু প্রচুর স্মৃতিটি অদলবদলের অভ্যন্তরে থাকে তাই একজনকে বেনামে থাকা স্মৃতিটি র্যামের বাইরে নিয়ে যেতে হবে, এটিকে আবার অদলবদলে রাখতে হবে, তারপরে অদলবদল থেকে কিছু নিয়ে এটিকে সত্যিকারের র্যামে রাখে। এই অপারেশনটি অত্যন্ত ব্যয়বহুল, মেশিনটিকে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে পড়ে যায়।
দ্বিতীয়টি কম বিবেচিত তবে তত গুরুত্বপূর্ণ important যদি আপনি প্রায় সমস্ত মেমরিকে বাস্তব অ্যাপ্লিকেশন ডেটাতে বরাদ্দ করেন - তবে আপনি দীর্ঘস্থায়ী হবেন না। প্রায় প্রতিটি অ্যাপ্লিকেশন অপারেটিং করার জন্য ফাইল সিস্টেম থেকে ফাইলগুলি পড়ার উপর নির্ভর করে, কারণ এটি হতে পারে কিছু নির্দেশাবলী একটি ভাগ করা লাইব্রেরিতে থাকে বা আপনার একটি লাইব্রেরি কলের জন্য /etc/resolv.conf পড়তে হয়, বা অন্য কোনও উদ্দেশ্যে। এটি একটি অপারেটিং সিস্টেমটি থামানোর জন্য সম্পূর্ণরূপে প্রশংসনীয় - তবুও আপনার সমস্ত অ্যাপ্লিকেশনগুলিতে ফিট করার জন্য পর্যাপ্ত মেমরি রয়েছে, তবে আপনার এত বেশি সারিবদ্ধভাবে I / O অনুরোধ করার কোনও কিছুই সঠিকভাবে সম্পন্ন করার সুযোগ নেই।
কার্নেলটি আপনার অদলবদল দিয়ে কী করতে চায়
কার্নেল আপনার অদলবদল মেমরি নষ্ট করে এমন পৃষ্ঠাগুলি থেকে মুক্তি পেতে চায় যাতে এটি সেই স্মৃতিটিকে অন্য কোনও কিছুর জন্য ব্যবহার করতে পারে।
মূলত, সাধারণ অপারেশনে, কার্নেল আক্রমণাত্মকভাবে ডিস্ক থেকে পড়া ডেটা সহ পৃষ্ঠা ক্যাশে পূরণ করতে পছন্দ করে, এর অর্থ এটি একই ডেটার জন্য ডিস্কটি পড়বে না। এটি ভাল নকশা এবং আই / ওকে হ্রাস করতে পারে। এখন, এটি হতে পারে যে আপনার কিছু অ্যাপ্লিকেশন স্মৃতিতে বসে আছে যা 3 দিন ঘুমায়, জেগে ওঠে, একগুচ্ছ কাজ করে আবার আরও 3 দিন ঘুমায়।
কার্নেল এই ডেটাটি দিয়ে কী করতে চাইবে তা পরিবর্তে ফাইল সিস্টেমের ক্রিয়াকলাপের জন্য জায়গা তৈরি করবে, যেহেতু আপনি আপনার অ্যাপ্লিকেশনটির জন্য যে পৃষ্ঠাগুলি ব্যবহার করেন সেগুলির চেয়ে আপনার এই পৃষ্ঠাগুলি প্রায়শই বেশি ব্যবহার করার সম্ভাবনা বেশি থাকে। অদলবদল করা, এই অর্থে আপনার অদলবদল মিডিয়ায় 16 কিলোবাইটের লেনদেন হতে পারে যা আপনার খুব কমই অনুভব করা উচিত তবে এর বিনিময়ে আপনি 16 কেবি মেমরি মুক্ত করেছিলেন যা চারটি ফাইলের মূল্যবান ডেটা সঞ্চয় করতে ব্যবহার করা যেতে পারে।
কার্নেল কি স্বাপের জন্য ব্যবহার করতে চায় না
কার্নেল স্পষ্টতই আপনার অদলবদলকে আরও কিছু বেনামী মেমোরি অদলবদল করে আরও বেনামী মেমরি বরাদ্দ করতে চায় না, এই পরিস্থিতিটি লোকেদের সবচেয়ে বেশি এবং সঠিকভাবে চিন্তিত।
যাইহোক, আমি উল্লেখ করতে হবে যে আপনি যদি এত বেশি মেমরি বরাদ্দ করে থাকেন যে কার্নেলের কাছে এটি করা ছাড়া আর কোনও উপায় নেই, এটি সিস্টেম প্রশাসকদের একটি কনফিগারেশন সমস্যা, কার্নেল নিজেই নয় - এটি কেবল সর্বোত্তম চেষ্টা করার চেষ্টা করছে বিকল্পগুলি আপনি এটি দিয়েছেন!
আপনার যদি বিপুল পরিমাণে অদলবদল থাকে তবে আপনি কী এটি ব্যবহারের সুযোগটি বাড়িয়ে দেবেন?
না! আপনার যদি 1G মেষ এবং 4G অদলবদল থাকে তবে আপনার ডেটা অদলবদল হওয়ার 80% সম্ভাবনা নেই! কার্নেল কেবল তখনই অদলবদলটি ব্যবহার করতে চায় যখন মেমরির পৃষ্ঠাগুলি আরও ভাল কিছু দেওয়া যায়!
অদলবদলটি একেবারেই ব্যবহার না করা কি সুবিধাজনক?
আমি এটা কখনই করতাম না অদলবদল O / S আপনার থাকা স্মৃতি থেকে মুক্তি পেতে দেয় তবে এটি কখনও ব্যবহারে আসে না। আপনার যদি কোনও অদলবদল না থাকে তবে আপনার কেবল মেমরি গ্রাস করে আপনি কখনই ফিরে পাবেন না, যার জন্য আপনি পৃষ্ঠার ক্যাশেটির পরিবর্তে এটির অনুমতি দিয়ে উল্লেখযোগ্য পারফরম্যান্সের উন্নতি দেখতে পাবেন।
সেরা অদলবদল কি
তাত্ত্বিকভাবে বলতে গেলে, পুনরায় প্রবেশকারী লাইব্রেরি কলগুলির মতো সুরক্ষার জন্য আবাসিক মেমরি কতটা + 20% সন্ধান করুন যা গাদা থেকে মেমরি বরাদ্দ করতে হয় - তারপরে আপনার পরিমাণটি অদলবদলে সেট করুন। এটি (তাত্ত্বিকভাবে যাইহোক) অপারেটিং সিস্টেমটিকে সমস্ত বেনামী মেমোরিটিকে অদলবদল করার অনুমতি দেয় যদি আরও কিছু কার্যকর করার জন্য উপায় তৈরি করতে হয়।
যদি আমি কার্নেলের সুযোগ পেয়ে যাই তবে সবকিছুকে বিপজ্জনকভাবে বদলাতে হবে?
মনে রাখবেন, কার্নেল এখানে আরও বেনামে মেমরি বরাদ্দের জন্য পথ তৈরি করতে চাইছেন না, এটি কেবল কখনও পৃষ্ঠাগুলি স্যুপ আউট করবে যা পরিবর্তে স্থানটির আরও ভাল ব্যবহার করবে something
যদি আপনার অদলবদল অ্যান মেমরিটি কেবলমাত্র আরও বেনামী মেমরি থেকে বরাদ্দ করার জন্য বেরিয়ে আসে তবে আপনার কিছু ভুল হচ্ছে এবং আরও বেশি র্যামের প্রয়োজন হয় বা আপনার অ্যাপ্লিকেশন স্ট্যাকটি পুনরায় পেতে প্রয়োজন।
আপনার কতটা র্যাম লাগবে
অবশ্যই আপনার সমস্ত অ্যাপ্লিকেশন চালানোর জন্য আপনাকে পর্যাপ্ত র্যামের অনুমতি দিতে হবে, তবে আপনার সম্ভবত পেজক্যাসের জন্য অতিরিক্ত 2 জি র্যামের অনুমতি দেওয়া উচিত - সম্ভবত আরও কিছু। পৃষ্ঠার ক্যাশে আপনার কম্পিউটারকে অনেক দ্রুত করে তোলে এবং আপনার ডিস্কগুলি দীর্ঘস্থায়ী হয়। যদি ওয়েবসারভার চালানোর আপনার চিন্তাভাবনা, পেজক্যাসের জন্য আরও বেশি কিছু রাখা ভাল ধারণা হয় তবে আপনি যে পেজক্যাচটি পরিবেশন করতে পারবেন তা পুনরুদ্ধার করতে এবং পুনরায় ব্যবহার করতে পারবেন (যদি আপনার ওয়েবসারভারের থ্রুটপুটটি 5 এমবি / সেকেন্ড হয় তবে আপনি সত্যই না সর্বোপরি আপনি আপনার ডিস্ক থেকে যে 5 এমবি / এস সামগ্রী তৈরি করছেন তা পুনরুদ্ধার করতে চান!)।
আপনি যদি সত্যিই লিনাক্সকে সঠিকভাবে অদলবদল করতে না চান তবে কী করবেন
আপনার যদি সত্যিই উদ্বিগ্ন থাকে তবে আপনার চেয়ে বেশি মেমরি বরাদ্দ করতে পারেন:
আমার অ্যাপ্লিকেশনটির জন্য আমার স্মৃতি টিউন করার সর্বোত্তম উপায় কী
বিক্রেতা একটি আলাদা কনফিগারেশন প্রস্তাবিত ..
পরিবর্তে এটি শুনতে। কিছু অ্যাপ্লিকেশনগুলি এমনভাবে লেখা থাকে যাতে তারা ইচ্ছাকৃতভাবে তাদের পৃষ্ঠাগুলি অন্য সমস্ত পৃষ্ঠার উপরে সক্রিয় রাখতে কার্নেলটিকে অনুরোধ করে। সত্যি কথা বলতে এটি একটি বাজে কৌশল কিন্তু এটি যখন ঘটে তখন মেমরিটি নির্বিঘ্নে পরিচালনা করার কার্নেলগুলির ক্ষমতাকে ভেঙে দেয়। যদি আপনার বিক্রেতা আপনাকে নির্দিষ্ট বিবরণ দিচ্ছে তবে তারা সম্ভবত এই বিভাগে আসবে এবং পরিবর্তে তারা যা বলেছে তা শোনেন।
সংক্ষেপে
কার্নেল সাধারণত ভার্চুয়াল মেমরি সঠিকভাবে পরিচালনা করার জন্য খুব ভাল কাজ করে। এটি প্রায়শই ঘটে থাকে যে আপনার অ্যাপ্লিকেশনটি আপনার সাথে আরও বেশি মেমরি বরাদ্দ করে যা সম্ভবত আপনার সাথে কাজ করার আশা করতে পারে এবং এটি একটি OOM এর কারণ কী তা ঘটায়।
অদলবদলকে 'স্পেয়ার মেমোরি' হিসাবে ব্যবহৃত হত তবে এটি এর প্রাথমিক উদ্দেশ্য নয়, সুতরাং এটির মতো ব্যবহার করার কথা ভাববেন না। পরিবর্তে, প্রশংসা করুন যে আপনার কার্নেল সম্ভবত এটি জানে যে এটি আপনার মেমরিটি কী জন্য ব্যবহার করতে চায়। এই সিদ্ধান্তগুলি নেওয়ার জন্য এটিকে স্থান দিন এবং আপনি সামগ্রিক পারফরম্যান্সের উন্নতি থেকে উপকৃত হবেন।
নথিটি থেকে "রেড হ্যাট এন্টারপ্রাইজ লিনাক্স 5 ডিপ্লোয়মেন্ট সুপারিশগুলিতে ওরাকল 10 জি সার্ভার"।
ওরাকল মেটালিঙ্ক নোট 169706.1 এ অদলবদলের আকার সম্পর্কিত জেনেরিক সুপারিশ সরবরাহ করে। এই সুপারিশগুলির ফলে প্রচুর পরিমাণে মেমরি থাকা সিস্টেমগুলিতে খুব বড় অদলবদলের স্থান তৈরি হতে পারে। খুব বড় অদলবদলের ফলে সিস্টেমের কর্মক্ষমতা ক্ষয় হয় এবং স্ব্যাপের স্থান হ্রাস করে সমাধান করা যায়। রেড হ্যাট রেড হ্যাট এন্টারপ্রাইজ লিনাক্স 5 এ অদলবদলের জন্য 4 গিগাবাইটের বেশি বরাদ্দ করার পরামর্শ দেয় না।
সুতরাং 16 গিগাবাইটের জন্য আপনার কাছে 4 গিগাবাইটের বেশি অদলবদল করা উচিত নয়।
পুনশ্চ. এছাড়াও এটি লক্ষণীয় যে, oom
সম্পূর্ণ আই / ও ব্যান্ডউইথ ব্যবহার করে অব্যবহারযোগ্য অদলবদল প্রক্রিয়া থেকে আমন্ত্রণ করা প্রায় সবসময়ই ভাল।
বর্তমান CentOS অদলবদলের প্রস্তাবনাগুলি সূত্রটি ব্যবহার করে:
M = Amount of RAM in GB, and S = Amount of swap in GB, then
If M < 2
S = M *2
Else
S = M + 2
সুতরাং 16 জি এর জন্য অদলবদলের পরিমাণ 18G হওয়া উচিত।
Http://www.centos.org/docs/5/html/Dep دام_ Guide-en- US / ch- swapspace.html দেখুন
লিনাক্স ডকুমেন্টেশন থেকে আমি যা মনে করি তা থেকে: আপনার র্যাম যদি 2 জিবি এর চেয়ে বেশি হয় তবে আপনি অদলবদল করুন (র্যাম সাইজ +২)। যদি এটি কম হয় তবে আপনি অদলবদল করুন (র্যাম সাইজ * ২)
আমি আপনার জন্য এই দস্তাবেজটি পেয়েছি, সিদ্ধান্ত নিতে এটি আপনাকে সহায়তা করা উচিত, এটি এখানে: স্ব্যাপ স্পেসটি কী? , তবে উপরের উত্তরগুলির মধ্যে দুটিও সঠিক নয়
dd if=/dev/zero of=swap.file bs=1024 count=1048576; mkswap swap.file; swapon swap.file