- লিনাক্স ক্যাশে এবং পেজ ক্যাশের জন্য উপলব্ধ সমস্ত র্যাম ব্যবহার করে, তাই কম খালি মেমরি থাকার মানে এই নয় যে কোনো সমস্যা আছে।
- swap, zram/zswap এবং vm.swappiness-এর সঠিক সেটিং-এর সমন্বয় আপনাকে পারফরম্যান্স ও স্থিতিশীলতার মধ্যে ভারসাম্য বজায় রাখতে সাহায্য করে।
- cgroup v2, systemd-oomd এবং earlyoom বা nohang-এর মতো টুলগুলো মেমোরি প্রেসার ও OOM ইভেন্টের ওপর সূক্ষ্ম নিয়ন্ত্রণ প্রদান করে।
- free, vmstat, htop, sar বা Glances দিয়ে মনিটরিং করা হলো বটলনেক শনাক্ত করা এবং মেমরি ম্যানেজমেন্ট অপ্টিমাইজ করার মূল চাবিকাঠি।

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

কার্নেল প্যারামিটার নিয়ে ঘাঁটাঘাঁটি করার আগে বা যথেচ্ছভাবে zram মাউন্ট করার আগে, মেমরির প্রকারভেদ, আর্কিটেকচার এবং সিস্টেম কীভাবে RAM-কে দেখে , সে সম্পর্কে কিছু স্পষ্ট ধারণা থাকা ভালো।
একটি কম্পিউটার সর্বোচ্চ কী পরিমাণ ফিজিক্যাল মেমোরি ধারণ করতে পারে, তা অপারেটিং সিস্টেম এবং প্রসেসর আর্কিটেকচার দ্বারা নির্ধারিত হয়। একটি ৩২-বিট সিস্টেম সাধারণত ৪ জিবি র্যামে সীমাবদ্ধ থাকে, যেখানে একটি ৬৪-বিট সিস্টেম সহজেই কয়েক দশ বা শত গিগাবাইট পর্যন্ত র্যাম ধারণ করতে পারে (তাত্ত্বিকভাবে এর চেয়েও অনেক বেশি, যদিও প্রকৃত সীমাটি হার্ডওয়্যার দ্বারা নির্ধারিত হয়)।
লিনাক্সে সমস্ত মেমরি ভার্চুয়াল মেমরি হিসেবে পরিচালিত হয় । এর মধ্যে ফিজিক্যাল র্যাম এবং সোয়াপ স্পেস উভয়ই অন্তর্ভুক্ত। ফিজিক্যাল মডিউল যোগ করা ছাড়া র্যামকে "স্ট্রেচ" করা যায় না, কিন্তু ডিস্ক (পার্টিশন বা সোয়াপ ফাইল) এবং zram বা zswap-এর মতো উন্নত পদ্ধতি ব্যবহার করে ভার্চুয়াল মেমরিকে প্রসারিত করা যায়।
La ভৌত মেমরি (র্যাম) এটি একটি দ্রুত এবং ব্যয়বহুল রিসোর্স: এখানেই প্রসেস, লাইব্রেরি, ফাইল ক্যাশ, I/O বাফার, শেয়ার্ড মেমরি ইত্যাদি লোড করা হয়। লিনাক্সের একটি খুব স্পষ্ট দর্শন আছে: যদি র্যাম খালি থাকে, তবে এটিকে খালি ফেলে রাখার চেয়ে ক্যাশ হিসেবে ব্যবহার করে অ্যাক্সেসের গতি বাড়ানোই শ্রেয়। একারণেই টুলগুলিতে খুব কম "ফ্রি" মেমরি দেখা যায়। free এর মানে এই নয় যে আপনার কোনো সমস্যা আছে।
ডিস্ক মেমরি ( স্থায়ী স্টোরেজ) অনেক ধীরগতির। যেখানে র্যাম ন্যানোসেকেন্ডে সাড়া দেয়, সেখানে একটি এসএসডি-ও মাইক্রোসেকেন্ড বা মিলিসেকেন্ডে সাড়া দেয়। এই কারণেই সিস্টেম ঘন ঘন ব্যবহৃত ডেটা র্যামে রাখার চেষ্টা করে এবং শুধুমাত্র একান্ত প্রয়োজন হলেই ডিস্ক ব্যবহার করে: যেমন এক্সিকিউটেবল লোড করা, কোল্ড ডেটা পড়া বা পেজ অদলবদল করা।
ভার্চুয়াল মেমরি, পেজ এবং অভ্যন্তরীণ কার্নেল কাঠামো
ভার্চুয়াল মেমরি হলো সেই ব্যবস্থা যার মাধ্যমে লিনাক্স প্রতিটি প্রসেসকে তার নিজস্ব বিচ্ছিন্ন এবং সুরক্ষিত অ্যাড্রেস স্পেস প্রদান করে । হার্ডওয়্যার এবং কার্নেল পেজ টেবিল নামক কাঠামোর মাধ্যমে ভার্চুয়াল অ্যাড্রেসগুলোকে ফিজিক্যাল অ্যাড্রেসে রূপান্তরিত করে।
মেমরি ব্যবস্থাপনার জন্য ব্যবহৃত ক্ষুদ্রতম একক হলো পেজ , যা সাধারণত ৪ কিলোবাইট হয়ে থাকে। সম্পূর্ণ ভার্চুয়াল মেমরি সিস্টেমটি পেজকে কেন্দ্র করেই আবর্তিত হয়: এগুলো বরাদ্দ করা হয়, মুক্ত করা হয়, অদলবদল করা হয়, ক্যাশ করা হয় এবং বিভিন্ন অনুমতি (যেমন—শুধুমাত্র পঠনযোগ্য, কার্যকর করা ইত্যাদি) দিয়ে চিহ্নিত করা হয়।
পেজ টেবিল হলো কার্নেল দ্বারা পরিচালিত একটি স্তরক্রমিক কাঠামো। এটি প্রতিটি প্রসেসের প্রতিটি ভার্চুয়াল পেজের জন্য প্রকৃত ভৌত পেজের অবস্থান (যদি তা বিদ্যমান থাকে), তার অনুমতি এবং তার বর্তমান অবস্থা সংরক্ষণ করে। এই রূপান্তরটি প্রসেসগুলোকে বিচ্ছিন্ন রাখতে, তাদের মধ্যে পেজ শেয়ার করতে এবং ফাইলগুলোকে সরাসরি মেমরিতে ম্যাপ করতে সাহায্য করে।
যখন কোনো প্রসেস একটি বৈধ অ্যাড্রেস অ্যাক্সেস করে, কিন্তু পেজটি অ্যাক্সেসের জন্য প্রস্তুত থাকে না, তখন একটি পেজ ফল্ট ঘটে । এটি হালকা (পেজটি র্যামে আছে কিন্তু এমন অবস্থায় আছে যা আপডেট করা প্রয়োজন) অথবা ব্যয়বহুল (পেজটি ডিস্কে, সোয়াপে বা কোনো ফাইলে আছে এবং এটিকে র্যামে আনতে হবে) হতে পারে। যদি পেজ ফল্ট ঘন ঘন ঘটতে থাকে, তবে সিস্টেম ধীর হয়ে যায় কারণ এটি ডিস্ক থেকে পড়তে অনেক বেশি সময় ব্যয় করে।
পেজ ক্যাশ হলো কার্নেল দ্বারা পরিচালিত ফাইল পেজগুলোর ক্যাশ। এটি ডিস্ক অ্যাক্সেস কমানোর জন্য ফাইল এবং ডিরেক্টরিগুলোর ডেটা ও মেটাডেটা সংরক্ষণ করে। এই কারণেই লিনাক্সকে দেখে মনে হয় যেন এটি সমস্ত র্যাম ব্যবহার করছে: বাস্তবে, এটি ডিস্ক অ্যাক্সেসের গতি বাড়ানোর জন্য অ্যাপ্লিকেশনগুলোর অব্যবহৃত মেমরিকে কাজে লাগায়।
মেমরির প্রকারভেদ: ফাইল-ব্যাকড, অ্যানোনিমাস এবং সোয়াপের সাথে এদের সম্পর্ক
লিনাক্সে সাধারণত ফাইল মেমরি এবং অ্যানোনিমাস মেমরির মধ্যে পার্থক্য করা হয় । উভয়ই র্যামে থাকে, কিন্তু এদের উৎস এবং ডিস্কে ব্যাকআপ নেওয়ার পদ্ধতি ভিন্ন।
কল ফাইল মেমরি এটিই হলো সেই জিনিস যা সিস্টেম ফাইল দ্বারা সমর্থিত থাকে: যেমন এক্সিকিউটেবল বাইনারি, শেয়ার্ড লাইব্রেরি, ম্যাপ করা ডেটা। mmap কোনো ফাইল ইত্যাদি থেকে। প্রয়োজনে জায়গার অভাবে সেই মেমরি বাতিল করে মূল ফাইল থেকে পুনরায় লোড করা যেতে পারে।
La বেনামী স্মৃতি প্রসেসটি যা কিছু রিজার্ভ করে রাখে, যা কোনো ফাইলের সাথে যুক্ত নয়, তার সবই হলো: ডাইনামিক হিপ, স্ট্যাক, প্রাইভেট রিজিয়ন। MAP_ANONYMOUSএবং কপি-অন-রাইট করার সময় যে এলাকাগুলো কপি করা হয় fork()এই মেমরি শুধুমাত্র র্যামে (অথবা স্থানান্তরিত হলে সোয়াপে) থাকে এবং এর একমাত্র সম্ভাব্য ব্যাকআপ হলো ঠিক সেই সোয়াপ স্পেসটিই।
যখন কার্নেলের র্যাম খালি করার প্রয়োজন হয়, তখন এটি প্রথমে সেই পেজগুলো মুক্ত করার চেষ্টা করে যেগুলো পুনরায় একত্রিত করা যায়: সাধারণত, পেজ ক্যাশে বা ফাইল-ব্যাকড রিজিয়ন থেকে পেজ। কেবল তখনই এটি অ্যানোনিমাস মেমরিকে সোয়াপে পাঠাতে শুরু করে , যখন আর কোনো জায়গা থাকে না বা মেমরির উপর চাপ খুব বেশি থাকে; যা অনেক বেশি ব্যয়বহুল হলেও সিস্টেমকে কিছুটা স্বস্তি দেয়।
মেমোরির উপর চাপ, ছটফটানি, এবং OOM কিলার
যখন খালি পেজের সংখ্যা একটি নির্দিষ্ট অভ্যন্তরীণ সীমার নিচে নেমে আসে, তখন মেমোরি প্রেসার তৈরি হয় । তখন কার্নেল মেমোরি খালি করার জন্য ক্রমাগত কাজ করতে বাধ্য হয়: যেমন ক্যাশ পরিষ্কার করা, ডার্টি পেজগুলোকে ডিস্কে লেখা, কদাচিৎ ব্যবহৃত পেজগুলোকে সরিয়ে দেওয়া, ইত্যাদি।
মেমোরির উপর অতিরিক্ত চাপ কিছু সুস্পষ্ট লক্ষণ তৈরি করতে পারে: ওয়েব সার্ভিসে বেশি ল্যাটেন্সি , ধীরগতির গ্রাফিক্যাল ইন্টারফেস, রিমোট সেশন (SSH, VNC, RDP) থেকে দেরিতে সাড়া পাওয়া, মাউসের নড়াচড়ায় ঝাঁকুনি, উইন্ডো প্রতিক্রিয়া দেখাতে কয়েক সেকেন্ড সময় নেওয়া ইত্যাদি। সেই মুহূর্তে, সিস্টেমটি দরকারি কাজ করার চেয়ে টিকে থাকার দিকেই বেশি মনোযোগ দেয়।
প্রসেসগুলো ক্রমাগত যে পেজগুলো ব্যবহার করে, সেগুলো ধারণ করার জন্য যখন র্যাম অপর্যাপ্ত হয়, তখন থ্র্যাশিং ঘটে । কার্নেল অবিরাম পেজ অদলবদল করতে শুরু করে: এটি একটিকে সরিয়ে অন্য একটিকে প্রবেশ করায়, কিন্তু তারপরেই সদ্য সরানো পেজটির আবার প্রয়োজন হয়। এর ফলে পেজ ফল্ট এবং ডিস্ক অ্যাক্সেসের একটি চক্র তৈরি হয় যা পারফরম্যান্সের অবনতি ঘটায়।
সোয়াপ চালু থাকলে, থ্র্যাশিং-এর অর্থ হলো অ্যানোনিমাস পেজগুলো র্যাম এবং সোয়াপ স্পেসের মধ্যে ক্রমাগত আসা-যাওয়া করে ডিস্ককে পরিপূর্ণ করে ফেলে। সোয়াপ না থাকলে, সমস্যাটি ফাইল পেজগুলোতে স্থানান্তরিত হয়: সেগুলোকে ফাইল সিস্টেম থেকে বারবার বাতিল ও পুনরায় লোড করা হয়, যা মেশিনটিকে কার্যত অকেজো করে দিতে পারে।
যদি কার্নেল তখনও মুক্ত মেমরি পেতে অক্ষম হয়, তাহলে নিম্নলিখিত বিষয়টি কার্যকর হয়: স্মৃতি-বহির্ভূত (OOM) প্রক্রিয়াযখন ড্রপ, কম্প্যাক্ট বা সোয়াপ করার মতো সবকিছু নিঃশেষ হয়ে যায়, তখন কার্নেল প্রতিটি প্রসেসের জন্য একটি স্কোর গণনা করে (oom_scoreএবং কোনটি উৎসর্গ করা হবে তা স্থির করে। সেই প্রক্রিয়াটি সম্পন্ন হয় এর দ্বারা OOM কিলার উল্লেখযোগ্য পরিমাণ র্যাম খালি করতে এবং সম্পূর্ণ ক্র্যাশ এড়াতে।
বিনিময়: এটি কী, এতে কতটা বিনিয়োগ করতে হবে এবং কেন এটি "শয়তান" নয়
সোয়াপ মেমোরির একটি খারাপ খ্যাতি রয়েছে, যার আংশিক কারণ হলো সেকেলে পরামর্শ এবং অতিসরলীকরণ, যেমন—"আপনার যদি প্রচুর র্যাম থাকে তবে সোয়াপের প্রয়োজন নেই।" বাস্তবে, সোয়াপ স্পেস হলো লিনাক্স মেমোরি ডিজাইনের একটি মূল উপাদান, এমনকি প্রচুর র্যামযুক্ত সিস্টেমেও।
সোয়াপ হলো ডিস্কের (পার্টিশন বা ফাইল) একটি এলাকা যা কার্নেল নিষ্ক্রিয় মেমরি পেজগুলো সংরক্ষণ করতে ব্যবহার করে । এর ফলে এটি সেইসব প্রসেসের জন্য র্যাম খালি করতে পারে যাদের আসলেই এটির প্রয়োজন। এটি নিজে ভার্চুয়াল মেমরি নয়, বরং এটি এমন একটি প্রক্রিয়া যা এই কাজটি সম্ভব করে তোলে।
সোয়াপ ছাড়া, মেমোরির চাপ বাড়লে অ্যানোনিমাস পেজগুলোর যাওয়ার কোনো জায়গা থাকে না। কার্নেল তখনও ক্যাশ এবং ফাইল-ব্যাকড পেজের উপর নির্ভর করতে পারে, কিন্তু অ্যানোনিমাস মেমোরির পরিমাণ আশঙ্কাজনকভাবে বেড়ে গেলেই, এটি কার্যত অনেক দ্রুত OOM কিলার চালু করতে বাধ্য হয়। প্রযুক্তিগতভাবে, লিনাক্স সোয়াপ ছাড়াই কাজ করতে পারে, কিন্তু বাস্তবে বেশিরভাগ ক্ষেত্রেই এটি একটি অপ্রয়োজনীয় ঝুঁকি।
সোয়াপ স্পেসের আকার নির্ধারণের ক্ষেত্রে কোনো নির্দিষ্ট নিয়ম নেই, তবে মেশিনের ভূমিকার ওপর নির্ভর করে কিছু বেশ যুক্তিসঙ্গত আধুনিক মানদণ্ড রয়েছে:
- হাইবারনেশন ছাড়া সার্ভারপর্যাপ্ত র্যাম থাকলেও, বাফার হিসেবে সাধারণত ৪-৮ জিবি সোয়াপ স্পেসই যথেষ্ট। মেমোরি-নির্ভর সার্ভিসগুলোর (যেমন ডেটাবেস, ভার্চুয়ালাইজেশন) জন্য আপনি এটিকে র্যামের দেড় গুণ পর্যন্ত বাড়াতে পারেন, কিন্তু মূল অগ্রাধিকার হওয়া উচিত ফিজিক্যাল র্যাম বাড়ানো।
- হাইবারনেশন ছাড়া ডেস্কটপ১৬ জিবি বা তার বেশি র্যামের ক্ষেত্রে, একটি সুরক্ষা ব্যবস্থা হিসেবে ২-৪ জিবি সোয়াপ যথেষ্টের চেয়েও বেশি।
- হাইবারনেশন-সক্ষম ডিভাইসসোয়াপ স্পেস অবশ্যই র্যামের সমান বা তার চেয়ে সামান্য বড় হতে হবে, কারণ হাইবারনেট করার সময় সিস্টেম মেমোরির সমস্ত বিষয়বস্তু এতে জমা করে।
সোয়াপ স্পেস তৈরি করা খুবই নমনীয়। আপনি একটি ডেডিকেটেড পার্টিশন বা একটি সোয়াপ ফাইল ব্যবহার করতে পারেন । যখন আপনার ডিস্ক আগে থেকেই পার্টিশন করা থাকে অথবা আপনি পুরো সিস্টেমটি পুনরায় কনফিগার না করেই এর আকার সামঞ্জস্য করতে চান, তখন একটি সোয়াপ ফাইল সবচেয়ে আদর্শ।
মেমরি মেট্রিক্স: ফ্রি, ভিএমস্ট্যাট, পিএস, আরএসএস, পিএসএস এবং আরও অনেক কিছু
ক্লাসিক লিনাক্স মেমরি ম্যানেজমেন্ট টুলগুলো ভুল ব্যাখ্যার কারণ হতে পারে, যদি আপনি না জানেন প্রতিটি কলামের অর্থ কী। কমান্ডটি free -h এক নজরে মোট মেমরি, ব্যবহৃত মেমরি, খালি মেমরি, ক্যাশ এবং সোয়াপ দেখার এটিই সবচেয়ে সহজ উপায়।
প্রস্থানের সময় free যে লাইনটি বাফার এবং ক্যাশে বাদ দেয়, সেটি দেখা অত্যন্ত গুরুত্বপূর্ণ, কারণ ওই কলামটিই নির্দেশ করে... প্রসেস দ্বারা প্রকৃতপক্ষে ব্যবহৃত মেমরিকার্নেল ক্যাশে হিসেবে যা ব্যবহার করছে এবং প্রয়োজনে যা দ্রুত মুক্ত করতে পারে, তা গণনা না করেই।
বিরূদ্ধে vmstat -s -S M আপনি আরও বিস্তারিত সারসংক্ষেপ পাবেন: মোট মেমরি, ব্যবহৃত মেমরি, খালি মেমরি, সক্রিয় মেমরি, নিষ্ক্রিয় মেমরি, সোয়াপ ক্যাশে, ইত্যাদি। আপনি আরও পরামর্শ নিতে পারেন। /proc/meminfo প্রতিটি মেট্রিক বিস্তারিতভাবে দেখার জন্য, যদিও এর ফলাফল কিছুটা নীরস এবং ব্যবহার-বান্ধব কম।
কোন প্রসেসগুলো র্যামকে সবচেয়ে বেশি প্রভাবিত করে তা খুঁজে বের করতে, ps aux কলামগুলি প্রদর্শন করে যেমন VSZ (মোট ভার্চুয়াল মেমরি যা প্রসেসটি সবকিছু লোড করলে ব্যবহার করতে পারত) এবং RSS (রেসিডেন্ট সেট সাইজ, বর্তমানে র্যামে থাকা প্রকৃত মেমরি)। দ্রষ্টব্য: আরএসএস-এর মধ্যে শেয়ার্ড লাইব্রেরি মেমরিও অন্তর্ভুক্ত, যা একাধিক প্রসেস দ্বারা ব্যবহৃত হলে একাধিকবার গণনা করা হয়।
এখানে খেলা আসে পিএসএস (আনুপাতিক সেট আকার)যা শেয়ার্ড লাইব্রেরির খরচ সেগুলোকে ব্যবহারকারী প্রসেসগুলোর মধ্যে বন্টন করে দেয়। সহজে PSS পাওয়ার জন্য কিছু টুল রয়েছে, যেমন smemশেয়ার্ড লাইব্রেরির কারণে ডেটা বিকৃত না করেই, কোন অ্যাপ্লিকেশনগুলো সত্যিই বেশি ডেটা ব্যবহার করে তা দেখার জন্য এটি খুবই উপযোগী।
মেমরি ফ্র্যাগমেন্টেশন, স্ট্যাক, হিপ এবং ইউলিমিট
মেমরি ব্যবস্থাপনার আরেকটি কম দৃশ্যমান দিক হলো ফ্র্যাগমেন্টেশন । আমরা ইন্টারনাল ফ্র্যাগমেন্টেশন (যখন ৪, ৮ বা ১৬ বাইটের গুণিতকে রাউন্ডেড ব্লক বরাদ্দ করা হয়, যার ফলে একটি অকেজো অংশ থেকে যায়) এবং এক্সটারনাল ফ্র্যাগমেন্টেশন (যখন খালি মেমরি থাকা সত্ত্বেও তা ছোট ছোট অংশে বিভক্ত থাকে, যা একটি বড় সংলগ্ন বরাদ্দের ব্যবহারকে বাধা দেয়) নিয়ে কথা বলতে পারি।
Redis-এর মতো অ্যাপ্লিকেশনগুলিতে, আপনি মাঝে মাঝে সিস্টেম দ্বারা রিপোর্ট করা মেমরি (RSS) এবং অ্যাপটি নিজে যে মেমরিকে দরকারী বলে মনে করে তার মধ্যে পার্থক্য দেখতে পাবেন।used_memoryএই দূরত্বের প্রধান কারণ হলো বাহ্যিক খণ্ডনএমন ফাঁক, যেগুলোকে সিস্টেম দখলকৃত হিসেবে গণ্য করে কিন্তু প্রসেসটি আসলে ব্যবহার করে না।
একটি প্রক্রিয়ার স্মৃতিকে ধারণাগতভাবে বিভক্ত করা হয় স্তূপ এবং স্তূপস্ট্যাক লোকাল ভেরিয়েবল এবং ফাংশন কলের জন্য ব্যবহৃত হয়, অন্যদিকে হিপ ডাইনামিক অ্যালোকেশনের জন্য ব্যবহৃত হয়। malloc() এবং অনুরূপ। যখন ডেটা স্ট্রাকচারগুলো স্ট্যাকের ধারণক্ষমতা ছাড়িয়ে যায়, তখন সেগুলোকে হিপ থেকে টেনে এনে পয়েন্টার ব্যবহার করে পরিচালনা করা হয়।
প্রতি প্রসেসের সর্বোচ্চ স্ট্যাক সাইজ এর মাধ্যমে সামঞ্জস্য করা যেতে পারে ulimit -a এবং সিস্টেম কনফিগারেশন। এটি কমালে বড় লোকাল ভেরিয়েবলের সংখ্যা সীমিত হয়, অন্যদিকে এটি বাড়ালে আরও বেশি ভেরিয়েবল বা ডিপ রিকারশন ব্যবহার করা যায়। এই প্যারামিটারটি অ্যাডজাস্ট করলে মেমরি ব্যবহার আরও ভালোভাবে নিয়ন্ত্রণ করা যায় এবং নির্দিষ্ট ধরণের ফ্র্যাগমেন্টেশন কমানো যায়, যদিও এটি কোনো সর্বরোগের মহৌষধ নয়।
উন্নত পর্যবেক্ষণ ও রোগনির্ণয়: top, htop, vmstat, sar এবং আরও অনেক কিছু
যেসব প্রসেস র্যাম ব্যবহার করছে, সেগুলো সনাক্ত করতে আপনি শুরু করতে পারেন এভাবে: top আর যদি আপনি আরও ব্যবহার-বান্ধব কিছু চান, সাথে htopপরেরটি সিপিইউ, মেমরি এবং সোয়াপ ব্যবহারের বার প্রদর্শন করে এবং প্রসেসগুলোকে ইন্টারেক্টিভভাবে সাজানো ও ফিল্টার করার সুযোগ দেয়।
ডেবিয়ান এবং এর ডেরিভেটিভগুলিতে, htop ইনস্টল করুন বিরূদ্ধে sudo apt install htopAlmaLinux এবং অন্যান্য Red Hat-সদৃশ সিস্টেমে, sudo dnf install htopএকবার ভিতরে প্রবেশ করলে, আপনি সরাসরি ইন্টারফেস থেকেই মেমরি অনুযায়ী সাজাতে, নির্দিষ্ট প্রসেস খুঁজতে এবং সমস্যা সৃষ্টিকারী টাস্ক বন্ধ করতে পারবেন।
গভীরতর বিশ্লেষণ এবং ব্যাচ মোডের জন্য, vmstat 5 এটি প্রসেস, মেমরি, পেজিং, ব্লক আই/ও, ইন্টারাপ্ট এবং সিপিইউ শিডিউলিং সম্পর্কে নিয়মিত তথ্য প্রদান করে। সময়ের সাথে সাথে মেমরির চাপ কীভাবে পরিবর্তিত হয়, তা দেখার জন্য এটি আদর্শ।
নিম্নলিখিত sysstat এতে অন্তর্ভুক্ত রয়েছে যেমন সরঞ্জাম sarযা আপনাকে মেমরি এবং অন্যান্য রিসোর্সের ব্যবহার রেকর্ড ও বিশ্লেষণ করার সুযোগ দেয়। উদাহরণস্বরূপ, sar -r 1 5 এটি প্রতি সেকেন্ডে পাঁচবার মেমরি এবং সোয়াপ ব্যবহারের পরিমাণ প্রদর্শন করে। ডেবিয়ানে এটি ইনস্টল করা হয় sudo apt install sysstatএবং AlmaLinux-এ sudo dnf install sysstat.
আপনার যদি গভীর কার্নেল-স্তরের ডিবাগিংয়ের প্রয়োজন হয়, bpftrace এটি eBPF-ভিত্তিক একটি শক্তিশালী টুল। এটি আপনাকে রিকম্পাইল বা রিস্টার্ট না করেই সিস্টেম কল ইন্সট্রুমেন্ট করতে, মেমরি অ্যাক্সেস পর্যবেক্ষণ করতে এবং বটলনেক শনাক্ত করতে দেয়। এটি সাধারণত এর সাথে ইনস্টল করা হয় sudo apt install bpftrace ডেবিয়ান-সদৃশ সিস্টেমে।
ব্যবহারিক মেমরি ব্যবস্থাপনা: সোয়াপ, সোয়াপিনেস এবং ক্যাশ ক্লিনিং
অনেক সার্ভারের একটি মৌলিক কাজ হলো পরীক্ষা করা অদলবদলের বর্তমান অবস্থা। সঙ্গে swapon --show আপনার কাছে সক্রিয় সোয়াপ ডিভাইস ও ফাইল, তাদের আকার, প্রকার এবং অগ্রাধিকারের একটি তালিকা রয়েছে। যদি আপনার তাৎক্ষণিকভাবে সোয়াপ যোগ করার প্রয়োজন হয়, তাহলে আপনি একটি ফাইল তৈরি করতে পারেন যার মাধ্যমে fallocateঅনুমতিপত্র সুরক্ষিত করুন chmod 600এটি দিয়ে ফরম্যাট করুন mkswap এবং এটি দিয়ে সক্রিয় করুন swaponএটিকে স্থায়ী করতে, কেবল সংশ্লিষ্ট এন্ট্রিটি যোগ করুন /etc/fstab.
প্যারামিটার vm.swappiness এটি নিয়ন্ত্রণ করে যে কার্নেল র্যাম পূর্ণ করার পরিবর্তে সোয়াপ ব্যবহারকে কতটা সহজে অগ্রাধিকার দেবে। এর মান ০ থেকে ১০০ পর্যন্ত হয়ে থাকে। কম মান (১০-২০) সিস্টেমকে একেবারে প্রয়োজন না হওয়া পর্যন্ত সোয়াপ এড়িয়ে চলতে নির্দেশ দেয়, অন্যদিকে উচ্চ মান (৬০ বা তার বেশি) র্যাম খালি রাখার জন্য সিস্টেমকে আরও সহজে পেজগুলোকে সোয়াপে সরাতে উৎসাহিত করে।
ধীরগতির ডিস্ক বা বড় ডেটাবেসযুক্ত সার্ভারগুলিতে এটি প্রায়শই আগ্রহের বিষয় হয়ে থাকে। অদলবদল কমানোউদাহরণস্বরূপ, ১০ বা ২০ পর্যন্ত, সাথে sudo sysctl vm.swappiness=10দ্রুতগতির জেডর্যাম বা এসএসডি যুক্ত ডেস্কটপের ক্ষেত্রে, ৩০-৬০-এর মতো মধ্যবর্তী মান ল্যাটেন্সি এবং মেমরি ব্যবহারের মধ্যে একটি ভালো ভারসাম্য প্রদান করতে পারে।
স্মৃতিশক্তি ভালো থাকলে, কখনও কখনও জোর করা প্রয়োজন হয় ক্যাশে রিলিজ বিরূদ্ধে sudo sync && sudo sysctl -w vm.drop_caches=3এর ফলে পেজ ক্যাশ এবং ডেন্ট্রির একটি বড় অংশ খালি হয়ে যায়। খুব সীমিত ক্ষমতার সিস্টেমে পরীক্ষা করার জন্য বা মেমরি খালি করার জন্য এটি মাঝে মাঝে কাজে লাগে, কিন্তু এটি নিয়মিত ব্যবহার করা উচিত নয়, কারণ এতে ক্যাশিংয়ের ফলে পাওয়া পারফরম্যান্সের উন্নতিও নষ্ট হয়ে যায়।
উন্নত নিয়ন্ত্রণ সরঞ্জাম: সিগ্রুপ ভি২, মেমরি.প্রেসার এবং ইউজার স্পেসে ওওএম
systemd এবং cgroup v2 ব্যবহারকারী আধুনিক সিস্টেমগুলিতে , প্রসেস গ্রুপের মাধ্যমে মেমরি ম্যানেজমেন্টকে সূক্ষ্মভাবে নিয়ন্ত্রণ করা যায়। cgroup v2 টাস্কগুলিকে স্তরবিন্যাসে সাজায় এবং শুধুমাত্র স্বতন্ত্র প্রসেস স্তরে নয়, বরং গ্রুপ স্তরে রিসোর্সের সীমা ও অগ্রাধিকার (সিপিইউ, মেমরি, আই/ও) প্রয়োগ করে।
মেমরি হায়ারার্কির মধ্যে, প্যারামিটার যেমন memory.low এগুলোর মাধ্যমে আপনি নির্দেশ করতে পারেন যে, নির্দিষ্ট কিছু সি-গ্রুপের মেমরিকে গ্লোবাল প্রেসার থেকে আরও বেশি সুরক্ষিত রাখা উচিত, আবার র্যাম খালি করার প্রয়োজন হলে অন্যগুলোকে বাদ দেওয়া যেতে পারে।
ফাইল memory.pressure এটি খুবই দরকারি মেট্রিক প্রকাশ করে: ১০, ৬০, এবং ৩০০-সেকেন্ডের ব্যবধানে, মেমোরির অভাবে ওই সি-গ্রুপের টাস্কগুলো কতক্ষণ ধরে ব্লক হয়ে আছে। ভ্যারিয়েন্টটি কিছু এটি নির্দেশ করে যে অন্তত একটি কাজ বিলম্বিত হয়েছে কিনা, এবং সম্পূর্ণ এটি এমন মুহূর্তগুলোকে প্রতিফলিত করে যখন দলের সমস্ত কাজ একই সাথে প্রভাবিত হয়েছিল।
কার্নেলের OOM কিলার ছাড়াও ইউজার-স্পেস সমাধান আবির্ভূত হয়েছে, যেমন— প্রারম্ভিক, নোহাং o সিস্টেমডি-ওওএমডিEarlyOOM র্যাম এবং সোয়াপ পর্যবেক্ষণ করে, এবং যখন এগুলোর পরিমাণ নির্দিষ্ট সীমার নিচে নেমে যায়, তখন এটি সক্রিয়ভাবে প্রসেসগুলো বন্ধ করে দেয়। oom_score মেশিনটি ফ্রিজ হয়ে যাওয়ার আগেই এর ব্যবহারযোগ্যতা পুনরুদ্ধার করা।
NoHang আরও এক ধাপ এগিয়ে: এটি আরও বেশি নির্বাচনের মানদণ্ড সমর্থন করে , মেমোরির চাপ বিবেচনায় নিতে পারে এবং উন্নত কনফিগারেশনের সাথে ভালোভাবে সমন্বিত হয়, যদিও এর উন্নয়নে উত্থান-পতন ছিল। অন্যদিকে, systemd-oomd সরাসরি systemd এবং cgroup v2-এর সাথে সমন্বিত হয় এবং বর্তমানে অনেক ডিস্ট্রিবিউশনে কম-মেমোরির পরিস্থিতি আরও বুদ্ধিমত্তার সাথে ও সূক্ষ্মভাবে পরিচালনা করার জন্য এটিই পছন্দের বিকল্প।
আধুনিক সোয়াপ: zram, zswap, এবং ডিভাইসের অগ্রাধিকার
‘ক্লাসিক’ ডিস্ক সোয়াপিং ছাড়াও, লিনাক্স এমন আধুনিক পদ্ধতি প্রদান করে যা র্যাম কম্প্রেশন এবং সিলেক্টিভ ডিস্ক ইউসেজ-এর সমন্বয়ের মাধ্যমে পারফরম্যান্সকে ব্যাপকভাবে উন্নত করে ।
zram হলো একটি কার্নেল মডিউল যা সরাসরি র্যামের মধ্যেই ব্লক ডিভাইস তৈরি করে, যেখানে পেজগুলো সংকুচিত অবস্থায় সংরক্ষিত থাকে। এগুলো সাধারণত অত্যন্ত দ্রুতগতির সোয়াপ ডিভাইস হিসেবে ব্যবহৃত হয়: কম্প্রেশন এবং ডিকম্প্রেশনে কিছুটা সিপিইউ শক্তি খরচ হয়, কিন্তু এর বিনিময়ে লজিক্যাল মেমরির ধারণক্ষমতা বাড়ে এবং ডিস্কের ব্যবহার ব্যাপকভাবে হ্রাস পায়।
অনেক ডিস্ট্রিবিউশনে, ইনস্টল করাই যথেষ্ট। zram-tools o zram-জেনারেটর এবং এর পরিষেবাটি সক্রিয় করুন। উদাহরণস্বরূপ, ডেবিয়ানে আপনি ব্যবহার করতে পারেন sudo apt install zram-tools এবং সক্রিয় করুন zramswap systemd-এর সাথে। AlmaLinux-এ, সাথে sudo dnf install zram-generator এবং এর সংশ্লিষ্ট পরিষেবা।
অন্যদিকে, zswap ডিস্ক সোয়াপের সামনে একটি কম্প্রেসড ক্যাশ হিসেবে কাজ করে । এটি প্রথমে সোয়াপ করা পেজগুলোকে কম্প্রেসড র্যামে সংরক্ষণ করার চেষ্টা করে; কেবল যখন এই ক্যাশ পূর্ণ হয়ে যায় বা পেজগুলো নিষ্ক্রিয় হয়ে পড়ে, তখনই এটি প্রকৃত সোয়াপ এরিয়াতে লেখে। এর ফলে ডিস্ক I/O কমে যায় এবং SSD-এর আয়ু বাড়ে, তবে এর জন্য কিছুটা CPU ব্যবহৃত হয়।
একাধিক সোয়াপ ডিভাইস (যেমন, zram এবং একটি ডিস্ক ফাইল) একত্রিত করার সময়, সমন্বয় করা অত্যাবশ্যক। অগ্রাধিকার। সঙ্গে swapon -p বা বিকল্প pri= en /etc/fstab কোন ডিভাইসটি প্রথমে ব্যবহার করা হবে তা আপনি নির্দিষ্ট করে দেন। প্রচলিত নিয়ম হল zram-কে উচ্চ অগ্রাধিকার (উদাহরণস্বরূপ, 100) এবং ডিস্ক সোয়াপকে নিম্ন অগ্রাধিকার (10) দেওয়া, যাতে কার্নেল ডিস্ক অ্যাক্সেস করার আগে RAM-এ সংকুচিত সোয়াপ স্পেসের সম্পূর্ণ সুবিধা নিতে পারে।
সার্ভারে প্রয়োগকৃত মেমরি ব্যবস্থাপনা: সোয়াপ, সার্ভিস এবং নিরাপত্তা
ওয়েব সার্ভার (অ্যাপাচি, এনজিনক্স), ডেটাবেস (মাইএসকিউএল, মারিয়াডিবি, মঙ্গোডিবি) বা রিসোর্স-ইনটেনসিভ অ্যাপ্লিকেশনগুলিতে মেমরি একটি অত্যন্ত গুরুত্বপূর্ণ রিসোর্স। র্যাম এবং সোয়াপ কনফিগারেশন সরাসরি নির্ধারণ করে যে, সিস্টেমটি হিমশিম খাওয়ার আগে আপনি একই সাথে কতগুলো রিকোয়েস্ট সামলাতে পারবেন।
MongoDB-এর মতো ডাটাবেস ইঞ্জিনের ক্ষেত্রে, ফিজিক্যাল র্যাম যেন ডাটাবেসের প্রয়োজনের চেয়ে বেশি হয় , তা অত্যন্ত গুরুত্বপূর্ণ ; অন্যথায়, এটি সোয়াপ স্পেস ব্যবহার করা শুরু করবে এবং র্যাম অ্যাক্সেস ও ডিস্ক অ্যাক্সেসের মধ্যে উল্লেখযোগ্য পার্থক্যের কারণে পারফরম্যান্স মারাত্মকভাবে হ্রাস পাবে। MySQL/MariaDB-এর ক্ষেত্রেও একই কথা প্রযোজ্য, যেখানে MySQLTuner-এর মতো টুলগুলো উপলব্ধ র্যামের উপর ভিত্তি করে মেমরি প্যারামিটার সুপারিশ করে।
মেমোরির অপচয় এড়াতে, অব্যবহৃত সার্ভিসগুলো বন্ধ করা এবং আর প্রয়োজন নেই এমন কন্টেইনার, ইমেজ ও ডকার ভলিউমগুলো পরিষ্কার করে ফেলা বাঞ্ছনীয় । ডেভেলপমেন্ট এবং কিউএ (QA) পরিবেশে, ভুলে যাওয়া রিসোর্সগুলো খুব সহজেই জমা হয়ে যায়, যা কারও অলক্ষ্যে গিগাবাইট পরিমাণ র্যাম এবং ডিস্ক স্পেস দখল করে নেয়।
নিরাপত্তারও একটি ভূমিকা রয়েছে: অপ্রয়োজনীয় পোর্ট খোলা এগুলো আক্রমণের ক্ষেত্র বাড়িয়ে দেয়। উদাহরণস্বরূপ, কোনো ম্যালওয়্যার যদি সিস্টেমে অনুপ্রবেশ করতে সক্ষম হয়, তবে সেটি মাইনিং প্রসেস চালু করতে পারে যা সিপিইউ এবং মেমরি ব্যবহার করে, এবং বিভিন্ন টাস্ক শিডিউল করতে পারে। crontab এবং সিস্টেম ক্র্যাশ করতে পারে। ইনকামিং ও আউটগোয়িং পোর্ট পরীক্ষা করা, অপ্রয়োজনীয় সবকিছু বন্ধ করা এবং সন্দেহজনক ক্রন জবগুলো পরিষ্কার করা হলো সিস্টেমের মৌলিক পরিচ্ছন্নতার অংশ, যা মেমরি রিসোর্সকেও সুরক্ষিত রাখে।
মেমরি ও ফাইল সিস্টেম: ext4, XFS, Btrfs এবং জার্নালিং
যদিও এটিকে একটি পৃথক বিষয় বলে মনে হতে পারে, ফাইল সিস্টেমের নির্বাচন এবং এর কনফিগারেশনও মেমরির আচরণ এবং I/O লোডকে প্রভাবিত করে। উদাহরণস্বরূপ, Ext4 একটি জার্নাল ব্যবহার করে যা লোডের উপর নির্ভর করে ডিস্কের উপর এবং ফলস্বরূপ, ক্যাশ ম্যানেজমেন্টের উপর কিছু অতিরিক্ত চাপ সৃষ্টি করতে পারে।
চাহিদাপূর্ণ সার্ভার পরিবেশে, অনেক প্রশাসক XFS বা এমনকি Btrfs বেছে নেন । XFS সাধারণত বড় ফাইল এবং উচ্চ-ক্ষমতাসম্পন্ন সিস্টেমের সাথে খুব ভালোভাবে কাজ করে। Btrfs স্ন্যাপশট, ট্রান্সপারেন্ট কম্প্রেশন এবং সাবভলিউমের মতো উন্নত বৈশিষ্ট্য প্রদান করে, তবে এর জন্য কিছুটা জটিলতা রয়েছে এবং সংস্করণ ও ডিস্ট্রিবিউশনের উপর নির্ভর করে, সমস্ত ওয়ার্কলোডের জন্য এর পরিপক্কতার স্তরটি এখনও বিতর্কিত।
কার্নেল ফাইল সিস্টেমের বৈশিষ্ট্য অনুযায়ী তার ক্যাশিং এবং রাইট-অফ নীতিকে অভিযোজিত করে, তাই ext4 থেকে XFS বা Btrfs-এ পরিবর্তন করলে তা কেবল র I/O-কেই প্রভাবিত করে না, বরং রিড ও রাইট অপারেশন বাফার করার জন্য র্যাম এবং পেজ ক্যাশে কীভাবে ব্যবহৃত হয়, সেটিকেও প্রভাবিত করে।
অ্যাডমিনদের জন্য অপরিহার্য গ্রাফিক্যাল টুল এবং ইউটিলিটি
যদিও টার্মিনাল যেকোনো অ্যাডমিনের জন্য একটি বহুমুখী টুল, তবুও এমন কিছু টুল রয়েছে যা মেমরি এবং রিসোর্স ব্যবস্থাপনাকে অনেক সহজ করে তোলে । এর মধ্যে একটি হলো গ্ল্যান্সেস (Glances) , একটি রিয়েল-টাইম মনিটর যা একটি স্ক্রিনেই সিপিইউ, মেমরি, ডিস্ক, নেটওয়ার্ক এবং প্রসেস প্রদর্শন করে। এর সাথে ব্রাউজার থেকে একাধিক সার্ভার মনিটর করার জন্য একটি ঐচ্ছিক ওয়েব ইন্টারফেসও রয়েছে।
ডেবিয়ানে দ্রুত ইনস্টলেশনের জন্য, শুধু... sudo apt install glancesদৃষ্টিপাত খুব ভালোভাবে পরিপূরক করে htop, vmstat y sarলোডের অধীনে সিস্টেমটি কীভাবে আচরণ করে তার একটি আরও দৃশ্যমান চিত্র প্রদান করে।
গ্রাফিক্যাল সার্ভার অ্যাডমিনিস্ট্রেশনের ক্ষেত্রে, ককপিট মেমরি, প্রসেস এবং সার্ভিস নিরীক্ষণের জন্য একটি ব্যবহারকারী-বান্ধব ওয়েব ইন্টারফেস প্রদান করে । এটি আপনাকে একটিমাত্র কনসোল থেকে একাধিক সার্ভার পরিচালনা করতে, সিস্টেমডি ইউনিট চালু ও বন্ধ করতে, সোয়াপ ও জেডর্যামের ব্যবহার নিরীক্ষণ করতে এবং আপনার ব্রাউজার থেকে বের না হয়েই লগ পর্যালোচনা করতে দেয়।
ডেস্কটপ সিস্টেমে অনেক ডিস্ট্রো তাদের নিজস্ব রিসোর্স মনিটর যুক্ত করে রাখে, কিন্তু যেসব পরিবেশে গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) নেই অথবা যেখানে আপনি হালকা ধরনের কিছু চান, সেখানে এই কনসোল টুলগুলোকে কাস্টম স্ক্রিপ্টের সাথে একত্রিত করলে যেকোনো নির্দিষ্ট সময়ে মেমোরিতে কী ঘটছে সে সম্পর্কে চমৎকার ধারণা পাওয়া যায়।
লিনাক্সে সঠিক মেমরি ম্যানেজমেন্টের জন্য বুঝতে হবে কার্নেল কীভাবে র্যাম ব্যবহার করে, সোয়াপ, জিরাম এবং জিসোয়াপের ভূমিকা কী, চাপের মুখে সিগ্রুপ ভি২ এবং বিভিন্ন ওওএম (OOM) কীভাবে প্রতিক্রিয়া দেখায়, এবং সিস্টেম মনিটর ও ফাইন-টিউন করার জন্য আপনার কাছে কী কী টুল রয়েছে। যখন আপনি এই সমস্ত বিষয়— ফ্রি, ভিএমস্ট্যাট, পিএসএস, এবং মেমরি.প্রেসার থেকে শুরু করে জিরাম, সোয়াপিনেস, এবং সিস্টেমডি-ওওএমডি পর্যন্ত —একসাথে ব্যবহার করেন, তখন আপনি "লিনাক্স র্যাম দখল করে নিচ্ছে" এই সমস্যা থেকে মুক্তি পান এবং একটি সূক্ষ্মভাবে টিউন করা ও স্থিতিশীল সিস্টেম পেতে শুরু করেন যা সার্ভার, ডেস্কটপ বা উচ্চ-লোডের পরিবেশ—যেকোনো ভূমিকায় হার্ডওয়্যারের পারফরম্যান্সকে সর্বোচ্চ পর্যায়ে নিয়ে যেতে সক্ষম।
সূচক
- 1 লিনাক্সে মেমরি সম্পর্কিত মৌলিক ধারণা এবং প্রচলিত ভুল ধারণা
- 2 ভার্চুয়াল মেমরি, পেজ এবং অভ্যন্তরীণ কার্নেল কাঠামো
- 3 মেমরির প্রকারভেদ: ফাইল-ব্যাকড, অ্যানোনিমাস এবং সোয়াপের সাথে এদের সম্পর্ক
- 4 মেমোরির উপর চাপ, ছটফটানি, এবং OOM কিলার
- 5 বিনিময়: এটি কী, এতে কতটা বিনিয়োগ করতে হবে এবং কেন এটি "শয়তান" নয়
- 6 মেমরি মেট্রিক্স: ফ্রি, ভিএমস্ট্যাট, পিএস, আরএসএস, পিএসএস এবং আরও অনেক কিছু
- 7 মেমরি ফ্র্যাগমেন্টেশন, স্ট্যাক, হিপ এবং ইউলিমিট
- 8 উন্নত পর্যবেক্ষণ ও রোগনির্ণয়: top, htop, vmstat, sar এবং আরও অনেক কিছু
- 9 ব্যবহারিক মেমরি ব্যবস্থাপনা: সোয়াপ, সোয়াপিনেস এবং ক্যাশ ক্লিনিং
- 10 উন্নত নিয়ন্ত্রণ সরঞ্জাম: সিগ্রুপ ভি২, মেমরি.প্রেসার এবং ইউজার স্পেসে ওওএম
- 11 আধুনিক সোয়াপ: zram, zswap, এবং ডিভাইসের অগ্রাধিকার
- 12 সার্ভারে প্রয়োগকৃত মেমরি ব্যবস্থাপনা: সোয়াপ, সার্ভিস এবং নিরাপত্তা
- 13 মেমরি ও ফাইল সিস্টেম: ext4, XFS, Btrfs এবং জার্নালিং
- 14 অ্যাডমিনদের জন্য অপরিহার্য গ্রাফিক্যাল টুল এবং ইউটিলিটি