লিনাক্সে কীভাবে zram সক্রিয় করবেন এবং আপনার মেমোরির সর্বোচ্চ ব্যবহার করবেন

সর্বশেষ আপডেট: 19/04/2026
লেখক: ইসহাক
  • zram র‍্যামে সংকুচিত ব্লক ডিভাইস তৈরি করে যা সোয়াপ বা অতি-দ্রুতগতির ডিস্ক হিসেবে কাজ করে, ডিস্ক অ্যাক্সেস কমায় এবং পারফরম্যান্স উন্নত করে।
  • ডেবিয়ান, উবুন্টু এবং এর ডেরিভেটিভগুলোতে zram-tools ব্যবহার করে সহজেই zram সক্রিয় করা যায় এবং ইনস্টল করা র‍্যাম অনুযায়ী কম্প্রেশন অ্যালগরিদম ও আকার সমন্বয় করা যায়।
  • zram-config বা zram-generator-এর মতো টুলগুলো একাধিক zram ডিভাইস তৈরি এবং systemd-এর সাথে সেগুলোর ইন্টিগ্রেশনকে স্বয়ংক্রিয় করে তোলে।
  • শতাংশ বা নির্দিষ্ট আকারের মধ্যে নির্বাচন করা এবং ডিস্ক সোয়াপের চেয়ে জেডর‍্যামকে অগ্রাধিকার দেওয়ার মাধ্যমে একটি ভারসাম্যপূর্ণ ও কার্যকর কনফিগারেশন তৈরি করা যায়।

লিনাক্সে zram কনফিগার করা

আপনি যদি প্রতিদিন GNU/Linux ব্যবহার করেন এবং আপনার কম্পিউটারের পারফরম্যান্সের সর্বোচ্চ ব্যবহার নিয়ে চিন্তিত হনআজ হোক বা কাল হোক, আপনাকে zRAM-এর ধারণার সম্মুখীন হতেই হবে। সীমিত র‍্যামযুক্ত অনেক ব্যবহারকারী একই সাথে একাধিক রিসোর্স-ইনটেনসিভ অ্যাপ্লিকেশন খোলার সময় স্টাটারিং, মাঝে মাঝে ফ্রিজ হয়ে যাওয়া বা ধীরগতির পারফরম্যান্সের মতো সমস্যার সম্মুখীন হন। ঐতিহ্যগতভাবে, এর সমাধান হিসেবে হার্ড ড্রাইভে একটি সোয়াপ পার্টিশন ব্যবহার করা হতো, কিন্তু আজকাল এর চেয়ে অনেক দ্রুত এবং কার্যকর বিকল্প রয়েছে।

zram হলো লিনাক্স কার্নেলের দেওয়া সেইসব চমৎকার জিনিসগুলোর মধ্যে একটি।এটি আপনাকে সরাসরি র‍্যামে কম্প্রেসড ব্লক ডিভাইস তৈরি করার সুযোগ দেয়, যা অত্যন্ত দ্রুতগতির সোয়াপ এরিয়া বা এমনকি টেম্পোরারি ডিস্ক হিসেবেও ব্যবহার করা যায়। সঠিকভাবে কনফিগার করা হলে, এটি সাধারণ সিস্টেম (৪-৮ জিবি র‍্যাম) এবং ১৬ বা ৩২ জিবি র‍্যামের মতো আরও শক্তিশালী মেশিন—উভয় ক্ষেত্রেই ব্যাপক পরিবর্তন আনতে পারে। এটি ডিস্ক অ্যাক্সেস কমায়, ক্র্যাশ প্রতিরোধ করে এবং সার্বিক সিস্টেম পারফরম্যান্স উন্নত করে।

ZRAM কী এবং কেন এটি একটি ক্লাসিক সোয়াপের তুলনায় পারফরম্যান্স উন্নত করে?

zram হলো একটি লিনাক্স কার্নেল মডিউল যা র‍্যামে সংকুচিত ব্লক ডিভাইস তৈরি করে।অন্য কথায়, এটি র‍্যামে এক ধরনের 'ভার্চুয়াল ডিস্ক' তৈরি করে, যার উপর একটি সোয়াপ স্পেস বা এমনকি একটি ফাইল সিস্টেমও তৈরি করা যায়। এই ডিভাইসে লেখা ডেটা সিপিইউ ব্যবহার করে তাৎক্ষণিকভাবে সংকুচিত করা হয় এবং মেমরিতে সংরক্ষণ করা হয়, ফলে এটি সংকোচন ছাড়া যা জায়গা নিত, তার চেয়ে কম জায়গা নেয়।

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

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

এর একটি অত্যন্ত সুস্পষ্ট ব্যবহারিক সুবিধা হলো ‘চরম’ পরিস্থিতিতে কর্মক্ষমতার উন্নতি।উদাহরণস্বরূপ, ফেডোরা চালিত ল্যাপটপে পরীক্ষা করে দেখা গেছে যে, ডিস্ক সোয়াপ থেকে zRAM-এর মাধ্যমে সোয়াপ-এ পরিবর্তন করার ফলে, প্রোটন দিয়ে চালিত কিছু উচ্চ-চাহিদার গেম (যেমন ডুম ২০১৬) শুধুমাত্র সোয়াপিং কৌশল পরিবর্তনের মাধ্যমেই একই হার্ডওয়্যারে মাত্র ৬-৭ fps থেকে প্রায় ২০ fps-এ চলতে শুরু করে। এটা কোনো জাদু নয়; ব্যাপারটা কেবল এই যে, সোয়াপটি আর অপেক্ষাকৃত ধীরগতির ডিস্কে থাকে না, বরং সংকুচিত র‍্যামে থাকে।

এই পদ্ধতিটি প্রচুর মেমরিযুক্ত আধুনিক কম্পিউটারেও সুবিধা প্রদান করে।যদিও আপনার মনে হতে পারে যে ১৬ বা ৩২ জিবি র‍্যাম থাকলে সোয়াপের প্রয়োজন নেই, কিন্তু সত্যিটা হলো, zram-এ একটি কম্প্রেসড বাফার থাকলে তা ডজন ডজন ট্যাবসহ ব্রাউজার, ভার্চুয়াল মেশিন, ভারী এডিটর বা গেম খোলার সময় সাবলীলতা বজায় রাখতে সাহায্য করে এবং সিস্টেমকে প্রসেস বন্ধ করা বা আটকে যাওয়া থেকে প্রতিরোধ করে।

বর্তমানে ZRAM কোথায় ব্যবহৃত হয় এবং কোন ডিস্ট্রিবিউশনগুলিতে এটি ইতিমধ্যেই অন্তর্ভুক্ত আছে বা এর ব্যবহার সহজ করে দেওয়া হয়েছে?

অনেক ডিস্ট্রিবিউশন ক্লাসিক সোয়াপের প্রতিস্থাপন বা পরিপূরক হিসেবে জেডর‍্যামের প্রতি দৃঢ়ভাবে প্রতিশ্রুতিবদ্ধ হয়েছে।এর অন্যতম সুপরিচিত উদাহরণ হলো ফেডোরা, যেটি ডিস্কের একটি সোয়াপ পার্টিশনের ওপর একচেটিয়াভাবে নির্ভর না করে, ডিফল্টরূপে zRAM-এর চেয়ে সোয়াপকে অগ্রাধিকার দেওয়ার সিদ্ধান্ত নিয়েছে। এই পরিবর্তনটি সীমিত মেমোরিযুক্ত ল্যাপটপ এবং ডেস্কটপের অভিজ্ঞতাকে উল্লেখযোগ্যভাবে উন্নত করেছে।

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

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

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

পর্যাপ্ত র‍্যামযুক্ত সিস্টেমে, যেমন ১৬-৩২ জিবি র‍্যামের ডেস্কটপ পিসি বা মিনি পিসিতেইনস্টলেশনের সময় সোয়াপ পার্টিশন তৈরি না করা এবং সংকুচিত সোয়াপ প্রক্রিয়া হিসেবে শুধুমাত্র zram ব্যবহার করা ক্রমশ সাধারণ হয়ে উঠছে। এর ফলে সোয়াপের জন্য ডিস্ক স্পেস সংরক্ষণ করার প্রয়োজন ছাড়াই সিস্টেম মসৃণভাবে চলতে থাকে, যা অনেক ক্ষেত্রেই খুব কম ব্যবহৃত হয়।

  আমি কিভাবে Pinterest এ আমার বন্ধুদের খুঁজে পেতে এবং নতুন লোকেদের যোগ করতে পারি?

মৌলিক ধারণা: র‍্যামের সোয়াপ, ব্লক ডিভাইস এবং ভার্চুয়াল ডিস্ক

ZRAM কী করছে তা পুরোপুরি বুঝতে হলে, সোয়াপ এবং ব্লক ডিভাইস—এই দুটি ধারণা পর্যালোচনা করা সহায়ক।GNU/Linux-এ, "প্রায় সবকিছুই একটি ফাইল," এবং হার্ডওয়্যার ডিভাইসগুলোও এর ব্যতিক্রম নয়: এগুলোকে /dev-এর মধ্যে বিশেষ ফাইল হিসেবে উপস্থাপন করা হয়। একটি হার্ড ড্রাইভ, একটি SSD, একটি SD কার্ড, বা একটি USB ফ্ল্যাশ ড্রাইভ ব্লক ডিভাইস হিসেবে প্রদর্শিত হয়, যেগুলোকে সিস্টেম একই ইন্টারফেস দিয়ে অ্যাক্সেস করে, যদিও এগুলোর অন্তর্নিহিত প্রযুক্তি ভিন্ন।

একটি ব্লক ডিভাইসে প্রচলিত ফাইল সিস্টেম থাকতে পারে।যেমন ext4, XFS, btrfs, ইত্যাদি, এবং সাধারণ ব্যবহারকারীর অ্যাক্সেসের জন্য একটি মাউন্ট পয়েন্টে মাউন্ট করা যায়। তবে, এই অ্যাবস্ট্রাকশনটি এমন ব্লক ডিভাইস তৈরিরও সুযোগ দেয় যা কোনো ফিজিক্যাল হার্ডওয়্যারের সাথে যুক্ত নয়, যেমন র‍্যাম ডিস্ক। এগুলো হলো র‍্যাম মেমরির এমন কিছু অংশ যাকে সিস্টেম "ডিস্ক" হিসেবে প্রকাশ করে এবং যা অন্য যেকোনো ড্রাইভের মতো ফরম্যাট ও মাউন্ট করা যায়।

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

ZRAM-এর পেছনের মূল ধারণা হলো উভয় জগতের সেরা দিকগুলোকে একত্রিত করা।এর জন্য র‍্যামের মধ্যে একটি 'নকল' ব্লক ডিভাইস তৈরি করা হয় এবং তাতে লেখা ডেটা কম্প্রেস করা হয়। এর ফলে র‍্যামের প্রায় সমান গতিতেই বেশি মেমরি ব্যবহারের মতো একটি সুবিধা পাওয়া যায় (কারণ কম্প্রেস করা ডেটা কম জায়গা নেয়), যেহেতু এক্ষেত্রে ডিস্কের পরিবর্তে সিপিইউ-ই মূল বাধা হয়ে দাঁড়ায়। এটি বিশেষ করে ভালো মানের সিপিইউ যুক্ত সিস্টেমে বেশ কার্যকর, যেখানে কম্প্রেশন এবং ডিকম্প্রেশনের খরচ খুব সহজেই সামাল দেওয়া যায়।

তাছাড়া, আরেকটি সুস্পষ্ট সুবিধা হলো যে র‍্যাম নষ্ট হয় না।এসএসডি-তে সোয়াপ ব্যবহার করলে একটি নির্দিষ্ট আয়ুষ্কালের স্টোরেজ মিডিয়ামে ক্রমাগত লিখতে হয়; অন্যদিকে জেডর‍্যাম (zram) ব্যবহার করলে সমস্ত সোয়াপিং মেমোরির মধ্যেই সম্পন্ন হয়, যা ডিস্কের কোনো ক্ষতি করে না বা এর জন্য কোনো নির্দিষ্ট ডিস্ক স্পেসের প্রয়োজন হয় না। এই কারণেই ল্যাপটপ ও এসএসডি ব্যবহারকারী দিন দিন আরও বেশি সংখ্যক ব্যবহারকারী জেডর‍্যামে সোয়াপ কনফিগার করতে পছন্দ করেন এবং অনেক ক্ষেত্রে ডিস্ক সোয়াপিং পুরোপুরি নিষ্ক্রিয় করে দেন।

zram-এর কম্প্রেশন অ্যালগরিদম: lz4, zstd, lzo এবং অন্যান্য।

সাধারণত নিম্নলিখিত কার্যসম্পাদন ক্রমটি গ্রহণযোগ্য।শুধুমাত্র কম্প্রেশন এবং ডিকম্প্রেশন গতির দিক থেকে, lz4 সাধারণত সবচেয়ে দ্রুত, এরপর zstd এবং তারপর lzo। কম্প্রেশন রেশিওর (অর্থাৎ, এটি ডেটার আকার কতটা কমায়) ক্ষেত্রে, সাধারণত zstd এগিয়ে থাকে, এরপর lzo এবং তারপর lz4। এর মানে হলো, zstd বেশি কম্প্রেস করে কিন্তু lz4-এর চেয়ে কিছুটা ধীরগতির, অন্যদিকে lz4 অত্যন্ত দ্রুত পারফরম্যান্সের জন্য কম্প্রেশন রেশিওকে বিসর্জন দেয়।

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

উপলব্ধ এবং নির্বাচিত অ্যালগরিদমটি সিস্টেমের মধ্যেই দেখা যাবে। যখন zram মডিউলটি লোড হয়, তখন /sys/block/zram0/comp_algorithm ফাইলের বিষয়বস্তু পরীক্ষা করলেই দেখা যাবে কার্নেল বর্তমানে কোন অ্যালগরিদমগুলো সমর্থন করছে এবং কোনটি সক্রিয় আছে। zram-tools-এর মতো টুলগুলোর জন্য কিছু কনফিগারেশন ফাইলে এই তথ্যটি কমেন্ট করে রাখা হয়।

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

zram-tools ব্যবহার করে Debian, Ubuntu এবং এর ডেরিভেটিভগুলিতে zram সক্রিয় করুন।

ডেবিয়ান, উবুন্টু এবং এপিটি-ভিত্তিক অনেক সংস্করণে, zram সক্রিয় করার সবচেয়ে সহজ উপায় হলো zram-tools প্যাকেজটি ব্যবহার করা।এই প্যাকেজটি একটি সার্ভিস এবং একটি কেন্দ্রীয় কনফিগারেশন ফাইল প্রদান করে, যার মাধ্যমে আপনি সহজেই নির্ধারণ করতে পারবেন যে zram কীভাবে সোয়াপ হিসেবে ব্যবহৃত হবে। এটি একটি পরীক্ষিত ও নির্ভরযোগ্য এবং বেশ প্রচলিত পদ্ধতি যা ডেবিয়ান ১০, ডেবিয়ান ১১, উবুন্টু ২০.০৪, উবুন্টু ২২.০৪ এবং এর কাছাকাছি সংস্করণগুলোতে ভালোভাবে কাজ করে।

প্রথম ধাপ হলো টার্মিনাল থেকে সংশ্লিষ্ট প্যাকেজটি ইনস্টল করা।sudo অথবা রুট অ্যাকাউন্ট ব্যবহার করে। এই ডিস্ট্রিবিউশনগুলিতে সাধারণ কমান্ডটি হবে:

sudo apt install zram-tools

zram-tools ইনস্টল হয়ে গেলে, মূল ফাইলটি হলো /etc/default/zramswapএখানেই কম্প্রেশন অ্যালগরিদম, zram-এর মোট আকার এবং অন্যান্য সোয়াপের উপর এর অগ্রাধিকারের মতো প্যারামিটারগুলো নির্ধারণ করা হয়। কোনো কিছু পরিবর্তন না করে রিবুট করলে, সিস্টেম সাধারণত ডিফল্টরূপে অল্প পরিমাণে zram তৈরি করে (উদাহরণস্বরূপ, ২৫০ MiB), যা আজকালকার বাস্তবসম্মত ডেস্কটপ ব্যবহারের জন্য প্রায়শই অপর্যাপ্ত।

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

sudo nano /etc/default/zramswap

এই ফাইলের মধ্যে আপনি বেশ কয়েকটি টীকাযুক্ত বিভাগ পাবেন। এগুলোতে উপলব্ধ অপশনগুলো ব্যাখ্যা করা থাকে। সাধারণত কম্প্রেশন অ্যালগরিদম সম্পর্কে একটি অংশ, zram-এর জন্য র‍্যামের কত শতাংশ বরাদ্দ করা হবে সে সম্পর্কে আরেকটি, MiB-তে একটি স্থির আকার নির্ধারণ করার জন্য আরেকটি, এবং swap-এর জন্য একটি প্রায়োরিটি অপশন থাকে। সংস্করণভেদে ফরম্যাটটি সামান্য ভিন্ন হতে পারে, কিন্তু মূল ধারণাটি একই।

  আইফোনে নোট পাসওয়ার্ড রিসেট করার পদ্ধতি

কম্পিউটারের র‍্যাম অনুযায়ী zram-এর সোয়াপ স্পেসের অ্যালগরিদম এবং আকার সমন্বয় করুন।

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

কিছু একটা = zstd

দ্বিতীয় প্রধান প্যারামিটারটি হলো zram-এর জন্য কতটা জায়গা বরাদ্দ করা হবে।দুটি প্রচলিত কৌশল রয়েছে: মোট র‍্যামের একটি শতাংশ কনফিগার করা অথবা MiB-তে একটি নির্দিষ্ট পরিমাণ নির্ধারণ করা। কিছু উদাহরণে শতাংশ নির্ধারণের জন্য PERCENT বা PERCENTAGE-এর মতো ভ্যারিয়েবল ব্যবহার করা হয় (যেমন, র‍্যামের অর্ধেকের জন্য ৫০), অন্যদিকে ফাইলটির অন্যান্য সংস্করণে একটি নির্দিষ্ট আকার বোঝানোর জন্য SIZE বা ALLOCATION-এর মতো ভ্যারিয়েবল থাকে।

শতাংশের হিসাবের কথা বললে, ৪-৮ জিবি র‍্যামের সিস্টেমগুলোতে মেমোরির প্রায় ৫০-৭০% বরাদ্দ করা একটি খুবই প্রচলিত কনফিগারেশন। একটি zram। উদাহরণস্বরূপ:

শতাংশ=৫০

অথবা কিছু কনফিগারেশন বৈচিত্র্যে: শতাংশ=৫০। এইভাবে, ৮ জিবি র‍্যামের একটি কম্পিউটারে, zram-এ সংকুচিত প্রায় ৪ জিবি সোয়াপ তৈরি হবে, যা সাধারণত বেশিরভাগ ডেস্কটপের জন্য যথেষ্ট এবং ভৌত সীমার খুব কাছাকাছি যাওয়া এড়ায়।

যেসব মেশিনে পর্যাপ্ত র‍্যাম থাকে, সেগুলোতে সাধারণত একটি স্থির আকার নির্ধারণ করাই বেশি যুক্তিযুক্ত।অসম আনুপাতিক zram তৈরি হতে দেওয়ার জন্য খুব বেশি শতাংশ ব্যবহার করার পরিবর্তে, MiB-এ SIZE বা ALLOCATION-এর মতো মান ব্যবহার করা যেতে পারে। কিছু প্রশাসক, উদাহরণস্বরূপ, ৮ জিবির বেশি র‍্যামযুক্ত সিস্টেমের জন্য ৪০৯৬ MiB (৪ GiB) zram এবং ১৬ জিবির বেশি র‍্যামযুক্ত সিস্টেমের জন্য ৮১৯২ MiB (৮ GiB) zram ব্যবহারের পরামর্শ দেন এবং অবশিষ্ট মেমরি অসংকুচিত রাখেন।

৩২ জিবি মেমোরিযুক্ত একটি কম্পিউটারের বাস্তব উদাহরণ হতে পারে: ALGO=zstd এবং SIZE=4096, যা zstd ব্যবহার করে zram-এ ৪ জিবি সোয়াপ রিজার্ভ করে। কিছু ব্যবহারকারী ৩২ জিবি মেশিনের জন্য Arch Linux-এর archinstall ইনস্টলারকে একটি রেফারেন্স হিসেবে ব্যবহার করেন, যা সাধারণত প্রায় ৪ জিবি zram বরাদ্দ করে; অন্যরা অনেক ভার্চুয়াল মেশিন বা বড় কন্টেইনার চালালে ৮ জিবি পর্যন্ত যেতে পছন্দ করেন।

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

বিদ্যমান ডিস্ক সোয়াপ এবং সোয়াপ অগ্রাধিকারের ব্যবস্থাপনা

যখন আপনি zram সক্রিয় করবেন, তখন আপনি কী ডিস্ক সোয়াপ নির্ধারণ করেছেন তা যাচাই করা গুরুত্বপূর্ণ।অনেক ডেবিয়ান এবং উবুন্টু ইনস্টলেশনে, ইনস্টলেশনের সময় একটি সোয়াপ পার্টিশন তৈরি হয়, অথবা উবুন্টুর সাম্প্রতিক সংস্করণগুলিতে রুট ফাইলসিস্টেমে একটি সোয়াপফাইল তৈরি হয়। আপনি যদি এগুলি নিষ্ক্রিয় না করেন, তাহলে র‍্যামে সংকুচিত সোয়াপ এবং ডিস্কে সোয়াপ উভয়ই থাকবে এবং কার্নেল তার অগ্রাধিকারের ভিত্তিতে কোনটি ব্যবহার করবে তা সিদ্ধান্ত নেবে।

যেসব কম্পিউটারে বেশি র‍্যাম থাকে (যেমন, ১৬ বা ৩২ জিবি), সেগুলিতে অনেক ব্যবহারকারী সোয়াপ পার্টিশন বা ডিস্ক ফাইল সম্পূর্ণরূপে নিষ্ক্রিয় করে দেন।এইসব ক্ষেত্রে, সোয়াপিংয়ের জন্য তারা শুধুমাত্র zram-এর উপর নির্ভর করে, যা ডিস্ক অ্যাক্সেসের ধীরগতি এড়ায় এবং SSD-এর ক্ষয় কমায়। যদি আপনার ডেবিয়ান বা উবুন্টু সিস্টেম ডিস্কে কোনো সোয়াপ পার্টিশন তৈরি না করে থাকে (উদাহরণস্বরূপ, ইনস্টলেশনের সময় আপনি এটি বাদ দেওয়ার কারণে), তাহলে আপনার /etc/fstab-এ কোনো কিছু পরিবর্তন করার প্রয়োজন নেই।

আপনার যদি সোয়াপ পার্টিশন থাকে, তবে আপনি /etc/fstab ফাইলটি সম্পাদনা করে সেটি নিষ্ক্রিয় করতে পারেন। এবং সেই অদলবদলের অ্যাসেম্বলি পয়েন্টের সাথে সঙ্গতিপূর্ণ লাইনে মন্তব্য করা। সাধারণ পদ্ধতিটি হবে:

সুডো ন্যানো / ইত্যাদি / fstab

সোয়াপ পার্টিশনকে নির্দেশ করে এমন লাইনটি খুঁজুন। (সাধারণত সোয়াপ টাইপ সহ) এবং এর শুরুতে একটি # যোগ করে এটিকে কমেন্ট আউট করুন। পরিবর্তনগুলি সেভ করে রিস্টার্ট করার পর, সিস্টেম আর সেই ডিস্ক সোয়াপটি মাউন্ট করবে না এবং zram-এর উপর মনোযোগ দেবে। একটি নির্দেশিকা হিসাবে, মাত্র ৪ জিবি র‍্যামের সিস্টেমে অতিরিক্ত ব্যাকআপ হিসাবে ডিস্ক সোয়াপ রাখা একটি ভালো ধারণা হতে পারে, যেখানে ৬-৮ জিবি বা তার বেশি র‍্যামের ক্ষেত্রে শুধু zram দিয়েই বেশ ভালোভাবে কাজ চালানো যায়।

zram কনফিগারেশন ফাইলের মধ্যেই আপনি ডিভাইসের অগ্রাধিকারও সামঞ্জস্য করতে পারেন।এটি PRIORITY-এর মতো একটি অপশন ব্যবহার করে করা হয়। swapon আপনাকে প্রতিটি সোয়াপ এরিয়াকে সংখ্যাসূচক অগ্রাধিকার দেওয়ার সুযোগ দেয়; সংখ্যা যত বেশি হবে, কার্নেল তত তাড়াতাড়ি সেই সোয়াপটি ব্যবহার করবে। HDD বা SSD-এর যেকোনো সোয়াপের চেয়ে zram-কে উচ্চতর অগ্রাধিকার দেওয়া যুক্তিযুক্ত, যা নিশ্চিত করে যে RAM-এর দ্রুত সোয়াপটি প্রথমে নিঃশেষিত হবে এবং তারপরে, কেবল প্রয়োজন হলেই, ডিস্ক সোয়াপ ব্যবহার করা হবে।

যেকোনো সময় যদি আপনি পরীক্ষা করতে চান কোন সোয়াপটি সক্রিয় আছে এবং কোন ক্রমে এটি ব্যবহৃত হচ্ছে।আপনি `swapon --show` ব্যবহার করতে পারেন। এই কমান্ডটি একটি টেবিল প্রদর্শন করবে, যেখানে সোয়াপ ডিভাইসগুলো, তাদের আকার, বর্তমান ব্যবহার এবং অগ্রাধিকার দেখানো হবে। আপনার zram কনফিগারেশনটি প্রত্যাশা অনুযায়ী কাজ করছে এবং সিস্টেমটি প্রকৃতপক্ষে এর সুবিধা নিচ্ছে কিনা, তা নিশ্চিত করার এটি একটি দ্রুত উপায়।

systemd zram-generator ব্যবহার করে zram-কে একটি সংকুচিত র‍্যাম ডিস্ক হিসেবে ব্যবহার করা

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

  কিভাবে একটি পাসওয়ার্ড বা প্যাটার্ন দিয়ে Huawei আনলক করবেন?

প্রধান কনফিগারেশন ফাইলটি সাধারণত /etc/systemd/zram-generator.conf হয়ে থাকে।অনেক ইনস্টলেশনে এটি ডিফল্টভাবে থাকে না, তাই আপনাকে এটি ম্যানুয়ালি তৈরি করতে হবে। বিকল্পভাবে, আপনি /etc/systemd/zram-generator.conf.d/ ফোল্ডারে এক বা একাধিক *.conf ফাইল দিয়ে একটি কাঠামো তৈরি করতে পারেন, যেগুলো কনফিগারেশন "স্ন্যাপশট" হিসেবে কাজ করবে এবং মূল ফাইলটি আগে থেকে থাকলে তার অংশবিশেষ ওভাররাইট করবে।

এর সিনট্যাক্সটি , , ইত্যাদির মতো নামের সেকশনের উপর ভিত্তি করে গঠিত। সংখ্যায়ন ০ থেকে শুরু হয়, যা প্রথম ডিভাইস, দ্বিতীয় এবং এভাবেই পর্যায়ক্রমে বাকিগুলোকে নির্দেশ করে। প্রতিটি বিভাগের মধ্যে, zram-tools-এ দেখা প্যারামিটারগুলোর মতোই প্যারামিটার সেট করা যায়, তবে systemd এবং ডিস্ক ব্যবহারের জন্য নির্দিষ্ট কিছু অতিরিক্ত অপশনও থাকে।

সবচেয়ে আকর্ষণীয় বিকল্পগুলির মধ্যে একটি হল কম্প্রেশন-অ্যালগরিদম।এটি আপনাকে কম্প্রেশন অ্যালগরিদম (যেমন, zstd, lz4, lzo-rle, ইত্যাদি) বেছে নেওয়ার সুযোগ দেয়। যদি নির্দিষ্ট করে না দেওয়া হয়, তবে সিস্টেম কার্নেলের ডিফল্ট অ্যালগরিদম ব্যবহার করবে, যা অনেক ক্ষেত্রেই lzo-rle হয়ে থাকে। এছাড়াও মাউন্ট বা সোয়াপ প্যারামিটার পাস করার জন্য একটি `options` ডিরেক্টিভ রয়েছে, যেমন `discard`, যা এক্সিকিউশনের সময় অব্যবহৃত কম্প্রেসড পেজগুলোকে ছেঁটে ফেলে মেমরি ম্যানেজমেন্টকে অপ্টিমাইজ করে।

আরেকটি প্রাসঙ্গিক নির্দেশিকা হলো writeback-deviceউন্নত পরিস্থিতির জন্য ডিজাইন করা এই বিকল্পটি আপনাকে এমন পেজগুলি সংরক্ষণের জন্য একটি ডিভাইস নির্দিষ্ট করার সুযোগ দেয়, যেগুলিকে কার্যকরভাবে কম্প্রেস করা যায় না, এবং সেগুলিকে zram থেকে অফলোড করে। এই কনফিগারেশনটি ডেস্কটপ কম্পিউটারে ততটা প্রচলিত নয়, তবে খুব সীমিত জায়গার ক্ষেত্রে এটি কার্যকর হতে পারে, যেখানে আপনি কম্প্রেসড মেমরি এবং ব্যাকআপ স্টোরেজকে একত্রিত করতে চান।

আপনি যদি zram-কে একটি সংকুচিত র‍্যাম ডিস্ক হিসেবে ব্যবহার করতে চান, তাহলে fs-type এবং mount-point-এর বিষয়টি গুরুত্বপূর্ণ হয়ে ওঠে।`fs-type` দিয়ে আপনি ফাইল সিস্টেম (যেমন, ext4) এবং `mount-point` দিয়ে সেই ডিরেক্টরি নির্ধারণ করেন যেখানে zram ডিভাইসটি মাউন্ট করা হবে। এর ফলে, উদাহরণস্বরূপ, র‍্যামে একটি অত্যন্ত দ্রুতগতির, সংকুচিত অস্থায়ী ডিরেক্টরি মাউন্ট করা যায়, যা ভারী কম্পাইলেশন, অস্থায়ী ডেটা প্রসেসিং বা অ্যাপ্লিকেশন ক্যাশিংয়ের জন্য উপযোগী।

একাধিক zram ডিভাইস তৈরি করার মাধ্যমে একই ডিভাইসে বিভিন্ন ব্যবহার মিশ্রিত করা সম্ভব।zram0 সোয়াপ হিসেবে এবং zram1 ext4 দিয়ে মাউন্ট করা একটি ডিস্ক হিসেবে ব্যবহৃত হয়। কিছু বাস্তব ক্ষেত্রে, এটি এমনভাবে কনফিগার করা হয় যে, zram0 কেবল তখনই তৈরি হবে যখন সিস্টেমে একটি নির্দিষ্ট পরিমাণের (যেমন, ৯ জিবি) বেশি র‍্যাম থাকবে এবং প্রতিটি ডিভাইস ২ জিবি পর্যন্ত ফিজিক্যাল মেমরি ব্যবহার করতে পারবে। এর ফলে zram-এর সর্বোচ্চ ব্যবহার নিয়ন্ত্রণ করা যায় এবং কম্প্রেশন প্রত্যাশা অনুযায়ী কার্যকর না হলে এটি যাতে অতিরিক্ত র‍্যাম দখল না করে, তা প্রতিরোধ করা যায়।

zram-config এর ব্যবহারিক পরীক্ষা এবং স্বয়ংক্রিয় আচরণ

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

এই স্বয়ংক্রিয় কনফিগারেশনগুলোর একটি সাধারণ কৌশল হলো প্রতিটি সিপিইউ কোরের জন্য একটি করে zram ডিভাইস তৈরি করা।এর ফলে কম্প্রেশন এবং ডিকম্প্রেশনের ভার একাধিক থ্রেডের মধ্যে ভাগ করে দেওয়া যায়, যা মাল্টি-কোর প্রসেসরের আরও ভালো ব্যবহার নিশ্চিত করে। উদাহরণস্বরূপ, একটি কোয়াড-কোর সিস্টেমে আপনি প্রায় একই আকারের চারটি zram ডিভাইস (zram0, zram1, zram2, zram3) দেখতে পাবেন, যেগুলো কার্নেল সমান্তরালভাবে ব্যবহার করতে পারে।

জেড-র‍্যামের মোট সম্মিলিত আকার সাধারণত ফিজিক্যাল র‍্যামের প্রায় অর্ধেক নির্ধারণ করা হয়।সুতরাং, ৮ জিবি র‍্যামের একটি মেশিনে, ডিফল্ট কনফিগারেশনগুলো বিভিন্ন ডিভাইসের মধ্যে প্রায় ৪ জিবি zRAM তৈরি করতে পারে। এই পরিমাণটি সাধারণত কম্প্রেশনের সুবিধা গ্রহণ এবং যেসব প্রসেস ভালোভাবে কম্প্রেস হয় না সেগুলোর জন্য সিস্টেমে পর্যাপ্ত জায়গার অভাব না হওয়ার মধ্যে একটি ভালো ভারসাম্য প্রদান করে।

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

zram-এর সঠিক কনফিগারেশন ও প্রকৃত ব্যবহার যাচাই করার জন্য বেশ কিছু দরকারি কমান্ড রয়েছে।উদাহরণস্বরূপ, `cat /proc/swaps` কমান্ডটি zram সহ সমস্ত সক্রিয় সোয়াপ এরিয়া, তাদের আকার এবং কী পরিমাণ ব্যবহৃত হচ্ছে তা প্রদর্শন করে। এছাড়াও আপনি বিস্তারিত পরিসংখ্যান এবং উন্নত প্যারামিটার, যেমন বর্তমান কম্প্রেশন অ্যালগরিদম অথবা লজিক্যালি বরাদ্দকৃত মেমরির তুলনায় ব্যবহৃত ফিজিক্যাল মেমরির পরিমাণ জানার জন্য `/sys/block/zram*/` ফাইলটি দেখতে পারেন।

বাস্তবে, একবার zram সঠিকভাবে কনফিগার করা হয়ে গেলে, ব্যবহারকারীর সাধারণত হস্তক্ষেপ করার প্রয়োজন হয় না।অপারেটিং সিস্টেমই ঠিক করে কোন পেজগুলোকে zRAM-এ সরানো হবে, কখন সেগুলোকে কম্প্রেস করা হবে এবং কখন সেগুলোকে রিলিজ করা হবে। আপনি যদি রিসোর্স-ইনটেনসিভ প্রোগ্রাম ব্যবহার করেন বা অনেকগুলো অ্যাপ্লিকেশন খোলেন, তাহলে লক্ষ্য করবেন যে মেমোরির অভাবে মেশিনটি ধীর হয়ে যাওয়ার বা প্রসেস বন্ধ হয়ে যাওয়ার আগে এটি আরও ভালোভাবে কাজ করে।

লিনাক্সে zram-এর উপর swap কনফিগার করার মাধ্যমে আপনি উপলব্ধ মেমোরিকে আরও ভালোভাবে ব্যবহার করতে পারেন।আপনার কাছে ৪-৮ জিবি র‍্যামের ল্যাপটপ থাকুক বা ৩২ জিবি র‍্যামের ডেস্কটপ, সাইজ, অ্যালগরিদম এবং প্রায়োরিটি অপশনগুলো বোঝার মাধ্যমে আপনি ডিস্ক অ্যাক্সেস কমিয়ে সিস্টেমের সার্বিক সাবলীলতা বাড়াতে পারেন এবং জীবনকে জটিল না করেই এই কার্যকারিতাটি নিজের পছন্দ অনুযায়ী সাজিয়ে নিতে ও এর থেকে সর্বোচ্চ সুবিধা পেতে পারেন।

গুগলের এআই: কম মেমরি, একই পারফরম্যান্স
সম্পর্কিত নিবন্ধ:
টার্বোকোয়ান্ট: গুগলের এমন এক এআই যা অনেক কম মেমোরিতে একই রকম পারফরম্যান্সের প্রতিশ্রুতি দেয়।