CH-J Server ManagerSSH-এর মাধ্যমে সার্ভার ব্যবস্থাপনা
মেনু
সব নির্দেশিকা ও নিবন্ধ →

Linux সার্ভারে RAM, ক্যাশ ও swap-এর হিসাব কীভাবে পড়বেন

free-এর কলামগুলোর অর্থ, মেমরির বেশি ব্যবহার প্রায়ই স্বাভাবিক কেন, এবং কোন লক্ষণগুলো সত্যিই মেমরির ঘাটতি বোঝায়।

free নয়, available দেখুন

Linux অন্যথায় অব্যবহৃত মেমরিকে ডিস্ক ক্যাশ হিসেবে ব্যবহার করে, তাই সুস্থ সার্ভারে ফাঁকা মেমরি কম থাকা স্বাভাবিক। available কলাম হলো swap ব্যবহার না করে নতুন কাজ কতটা মেমরি পেতে পারে সে বিষয়ে কার্নেলের অনুমান। এই সংখ্যাটিই দেখুন। used-এর সঠিক হিসাব টুলের সংস্করণের ওপর নির্ভর করে, তাই আলাদা সিস্টেমের মধ্যে এর তুলনা করবেন না।

free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfo

ক্যাশের কোন অংশ খালি করা যায় আর কোনটি যায় না

অ্যাপ্লিকেশনের মেমরি দরকার হলে সাধারণত পেজ ক্যাশ খালি করা যায়। শেয়ার করা মেমরি ও tmpfs (Shmem)-ও cache-এর মধ্যে দেখা যায়, কিন্তু এগুলো সরাসরি ফেলে দেওয়া যায় না, কারণ এগুলো এমন ডেটা ধরে রাখে যার কোনো কপি ডিস্কে নেই। তাই ক্যাশ বড় অথচ উপলব্ধ মেমরি কম হলে প্রায়ই বড় tmpfs বা শেয়ার করা মেমরি সেগমেন্ট থাকার ইঙ্গিত মেলে।

df -h -t tmpfs
sudo slabtop -o | head -15

swap ব্যবহার হলেই সমস্যা বোঝায় না

সার্ভার খুব কম ব্যবহৃত পেজ কয়েক সপ্তাহ ধরে swap-এ রাখলেও ক্ষতি নাও হতে পারে। ক্ষতি করে ক্রমাগত আসা-যাওয়া। vmstat-এর si ও so কলাম দেখুন: মান ক্রমাগত শূন্যের ওপরে থাকলে বুঝতে হবে সিস্টেম সক্রিয়ভাবে swap-এ পেজ পাঠাচ্ছে বা সেখান থেকে আনছে, যা প্রকৃত ঘাটতির লক্ষণ।

swapon --show
vmstat 1 5

কী মেমরি ব্যবহার করছে খুঁজুন

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

ps -eo pid,user,rss,comm --sort=-rss | head -15

প্রকৃত ঘাটতি চিনুন

লক্ষণগুলো হলো উপলব্ধ মেমরি কম থাকা, ক্রমাগত swap-এ পেজ আদান-প্রদান এবং out-of-memory killer-এর হাতে প্রসেস বন্ধ হওয়া। কার্নেল লগ দেখুন। সংখ্যা ভালো দেখানোর জন্য drop_caches চালাবেন না: এতে কেবল সার্ভারকে আবার ডিস্ক থেকে পড়তে হয়, কোনো সমস্যার সমাধান হয় না।

sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'

CH-J Server Manager-এ মেমরি

System Monitor SSH দিয়ে এই মানগুলো পড়ে। Linux-এ এটি used-কে MemTotal − MemFree − Buffers − Cached − SReclaimable হিসেবে নির্ধারণ করে এবং available-এর জন্য কার্নেলের অনুমান ব্যবহার করে। শেয়ার করা মেমরি Cached-এর অংশ এবং তা খালি করা যায় না; বারের বিভাগগুলো একে অন্যের সঙ্গে ওভারল্যাপ করে না। সূত্রটি free-এর কিছু সংস্করণ থেকে আলাদা, তাই সংখ্যাগুলো হুবহু নাও মিলতে পারে। এটি swap ও তার ব্যবহারের ইতিহাসও দেখায়। ZFS ARC আলাদাভাবে গণনা করা হয় না, তাই ZFS হোস্টে এটি ব্যবহৃত মেমরি হিসেবে ধরা হয়।

বিস্তারিত ডকুমেন্টেশন

man: free →

man: proc_meminfo →

বায়োমেট্রিক আনলক ও নিরাপত্তা →