ZRAM কিছু CPU হর্সপাওয়ার ট্রেড করে আরও বেশি RAM পাওয়ার একটি চমৎকার সমাধান, কিন্তু আপনি কীভাবে এটি কনফিগার করবেন যাতে ZRAM-এর জন্য আরও বেশি বা কম RAM ডেডিকেট করা যায়? কম্প্রেশন অ্যালগরিদম কীভাবে পরিবর্তন করবেন? কোন পরিস্থিতিতে такие পরিবর্তনকার্যকর হয়? উবুন্টুতে ZRAM কনফিগার করার পদ্ধতি জানতে পড়ুন।
বর্তমান ZRAM স্টেট চেক করুন
বেশিরভাগ লোক উবুন্টু, মিন্ট, বা অন্যান্য কম্প্যাটিবল ডিস্ট্রিবিউশনে zram-config স্ক্রিপ্টের মাধ্যমে ZRAM ব্যবহার করে। কারণ এটি ZRAM-এর সুবিধা নেওয়ার সবচেয়ে সহজ পথ। আপনি নিচের কমান্ড দিয়ে এটি ইনস্টল করতে পারেন:
sudo apt install zram-config
এর ডিফল্ট মান ZRAM কে আপনার কম্পিউটারের আসল RAM-এর অর্ধেক সেট করে, একাধিক পার্টিশনে ভাগ করে—প্রতিটি CPU কোরের জন্য একটি। আপনি নিচের কমান্ড দিয়ে এটি চেক করতে পারেন:
cat /proc/swaps
আপনি আমাদের স্ক্রিনশটে একটি টিপিক্যাল সওয়াপ ফাইল ("/var/cache/swap/swapfile" এন্ট্রি) আট ZRAM ভলিউমের সাথে কো-এক্সিস্ট করে দেখতে পাচ্ছেন। আমার সিস্টেমে ৮GB RAM ছিল। আপনি যদি সেই ZRAM ভলিউমগুলো যোগ করেন, যোগফল ৪GB আসে, যা আমাদের RAM-এর অর্ধেক। যাইহোক, আপনার ওয়ার্কলোডের উপর নির্ভর করে আপনি সেই সাইজ পরিবর্তন করতে চাইতে পারেন।
- আপনি যদি মাল্টিমিডিয়া এবং ভিডিওর সাথে কাজ করেন, সেগুলো খুব কম কম্প্রেসিবল, তাই আপনার ZRAM-এর সাইজ কমিয়ে আপনার আসল সওয়াপের সাইজ বাড়ানো সম্ভবত ভালো।
- আপনি যদি বড় ডাটাবেস বা অন্যান্য ধরনের হাইলি কম্প্রেসিবল ডেটার সাথে কাজ করেন, তবে বিষয়টি বিপরীত। এখানে আপনি ZRAM-এর সাইজ বাড়িয়ে আপনার কম্পিউটারের রেসপন্সিভনেস বাড়াতে পারেন।
একটি অন্য ট്വিক যা দেখার যোগ্য তা হলো ZRAM যে কম্প্রেশন অ্যালগরিদম ব্যবহার করে। ডিফল্টভাবে এটি LZO বা LZO-RLE ব্যবহার করে, যা CPU-র উপর হালকা। কিন্তু আধুনিক CPU-তে, নতুন ZSTD অ্যালগরিদম সাধারণত আরও ভালো কম্প্রেশন রেট দেয়, এবং এর কিছুটা বেশি CPU লোড মনে হয় না। আপনার PC যদি দশকের কম পুরনো হয়, তবে পুরনো LZO ভেরিয়েন্টের বদলে এই অ্যালগরিদম ব্যবহার করা উচিত।
আপনি zramctl কমান্ড ব্যবহার করে ZRAM যে অ্যালগরিদম ব্যবহার করছে তা চেক করতে পারেন। টার্মিনালে zramctl টাইপ করে এন্টার চাপুন আপনার ZRAM সওয়াপগুলো দেখতে।
Zramctl আপনার ডিস্ট্রিবিউশনে ইতিমধ্যে থাকা উচিত। যদি না থাকে, যেহেতু এটি util-linux প্যাকেজের অংশ, আপনি নিচের কমান্ড দিয়ে এনিতে পারেন:
sudo apt install util-linux
ZRAM কীভাবে কাজ করবে তা কন্ট্রোল করতে হলে, আপনাকে এর মূল স্ক্রিপ্ট টুইক করতে হবে। চলুন RAM এর পরিমাণ পরিবর্তন করি।
ZRAM সাইজ পরিবর্তন করুন
ZRAM সেটিংস পরিবর্তন করতে, আপনাকে এর এক্সিক স্ক্রিপ্টটি bin ফোল্ডারে এডিট করতে হবে। টার্মিনালে নিচের কমান্ডটি টাইপ করুন:
sudo nano /usr/bin/init-zram-swapping
ZRAM যে পরিমাণ RAM ব্যবহার করবে সেটি পরিবর্তন করতে, আপনাকে নিচের লাইনটি এডিট করতে হবে:
mem=$(( (totalmem / 2 / ${NRDEVICES}) * 1024 ))
এই লাইনটি কিছু সাধারণ ক্যালকুলেশনের উপর ভিত্তি করে ZRAM কতটুকু RAM ব্যবহার করবে তা সংজ্ঞায়িত করে:
totalmemহলো আপনার PC-তে ইনস্টল করা RAMের পরিমাণ/2totalmem কে দুই দিয়ে ভাগ করে, অর্থাৎ "মোট RAM-এর অর্ধেক"/ ${NRDEVICES}সেই সংখ্যক আপনার PC-র কোর সংখ্যা দিয়ে ভাগ করে* 1024উপরের ফলাফলকে ১০২৪ দিয়ে গুণ করে
পয়েন্ট ১ এবং ৩ আপনি পরিবর্তন করতে পারবেন না এবং উচিতও নয়, কিন্তু পয়েন্ট ২ এবং ৪ এর মানগুলো নিয়ে খেলা যেতে পারে ZRAM ব্যবহৃত RAM এর পরিমাণ টুইক করতে।
/ 2কে/ 4এ বাড়ালে, আপনার মোট RAM চার দিয়ে ভাগ হবে দুটির বদলে। таким образом ZRAM আপনার RAM-এর শুধু এক-চতুর্থাংশ ব্যবহার করবে অর্ধেকের বদলে। আমরা পুরো RAM ZRAM-এ ডেডিকেট করার পরামর্শ দিব না, তাই এই মান/ 2এ রেখে দাও অথবা আপনি যদি ZRAM কম মেমরি ব্যবহার করতে চান তবে এটিকে বাড়ান।
- একইভাবে,
/ 2রেখে1024কে512এ কমালে একই ফলাফল আসবে কারণ আপনি প্রতিটি ডিভাইসের জন্য উপলব্ধ RAM অর্ধেক করছেন। আপনি যদি ZRAM বেশি RAM ব্যবহার করতে চান, তবে এই মান1536এ বাড়াতে পারেন।
ZRAM কম্প্রেশন অ্যালগরিদম পরিবর্তন করুন
আপনি একই জায়গা থেকে ZRAM-এর কম্প্রেশন অ্যালগরিদম পরিবর্তন করতে পারেন।
প্রথমে, এটি বর্তমানে কোন কম্প্রেশন অ্যালগরিদম ব্যবহার করছে তা চেক করুন:
cat /sys/block/zram0/comp_algorithm
আপনি উন্নত কাস্টম ZRAM কনফিগারেশনে অ্যালগরিদম মিক্স অ্যান্ড ম্যাচ করতে পারেন। যাইহোক, আপনি ডিফল্ট মান ব্যবহার করলে সব ZRAM পার্টিশন একই অ্যালগরিদম ব্যবহার করবে। তাই আপনাকে সব গুলো চেক করতে হবে না—উপরের কমান্ডে আমরা শুধু প্রথমটি চেক করছি।
আমরা ইতিমধ্যে ZSTD অ্যালগরিদম ব্যবহার করছি, যা স্ক্রিনশটের ব্র্যাকেটের ভিতরে দেখানো হয়েছে। কম্প্রেশন রেট, স্পিড, এবং রিসোর্স ডিমান্ডের মাঝপথে এটি বর্তমানে সেরা সমাধান মনে হয়েছে, তাই এটিকে যেন থাকতে দিন। যাইহোক, আপনি ডিফল্ট ব্যবহার করলে আপনার LZO বা LZO-RLE ইনএবল থাকবে। এটিকে পরিবর্তন করতে, আমরা যে init-zram-swapping এক্সিক স্ক্রিপ্টটি আগে এডিট করেছিলাম সেটিতে ফিরে যান। সেখানে নিচের লাইনটি খুঁজুন:
echo $mem > /sys/block/zram${DEVNUMBER}/disksize
এটিকে কপি করে নিচে সরাসরি পেস্ট করুন যাতে একই কমান্ডের দুটি উদাহরণ থাকে। এই লাইনটি আমরা আগে দেখেছি ক্যালকুলেশনগুলোই ফলাফলকে প্রতিটি ZRAM ভলিউমের সাইজ হিসেবে অ্যাসাইন করে। যাইহোক, আমরা এটিকে কম্প্রেশন অ্যালগরিদম সংজ্ঞায়িত করতে ব্যবহার করব।
- লাইনের শুরুতে
$memকেzstdদিয়ে রিপ্লেস করুন। - লাইনের শেষে
disksizeকেcomp_algorithmদিয়ে রিপ্লেস করুন।
টুইক করা লাইনটি হবে নিচের মতো:
echo zstd > /sys/block/zram${DEVNUMBER}/comp_algorithm
আমাদের টুইক করা লাইনটি zstd কে ভ্যালু হিসেবে comp_algorithm প্যারামিটারে ইকো করছে।
আপনি যদি অন্য কোনো অ্যালগরিদম ব্যবহার করতে চান, তবে উপরের কমান্ডের zstd কে সেই অ্যালগরিদমের নাম দিয়ে পরিবর্তন করুন।
টুইক করা ফাইলটি সংরক্ষণ করুন, কম্পিউটার রিস্টার্ট করুন, এবং ফলাফল চেক করুন।
নিশ্চিত করুন যে আপনার সিস্টেম লোড আন্ডারে পারফর্ম্যান্স চেক করুন যখন এটি সক্রিয়ভাবে আপনার টুইক করা সওয়াপগুলো ব্যবহার করছে। আপনি যদি মনে করেন এটি চগুচগু বা স্টাটার করছে, তবে আপনি হয়তো অতি করছেন এবং আপনার বেছে নেওয়া মানগুলো কমাতে হবে। অন্যদিকে, যদি এটি উড়ে যাওয়ার মতো লাগে, তবে আপনি সম্ভবত এগুলো আরও কিছুটা বাড়াতে পারেন।
এখন আপনি উবুন্টুতে ZRAM কনফিগার করার পদ্ধতি জানতে পেরেছেন, যদি আপনি একটি শক্তিশালী PC বিল্ড করতে চান, তবে লিনাক্সের জন্য PC বিল্ড করার সময় যেসব বিষয় খেয়াল রাখতে হয় সেগুলো এখানে দেওয়া আছে।