সার্ভার ধীর: কোথা থেকে শুরু করবেন
পাঁচ মিনিটের ডায়াগনস্টিক পদ্ধতি: CPU, মেমরি, ডিস্ক, নেটওয়ার্ক — কয়েকটি কমান্ডে ঠিক কোথায় বাধা তৈরি হচ্ছে তা চিহ্নিত করুন এবং এরপর কী করবেন।
আপডেট: ২৩ আগস্ট, ২০২৬
“সবকিছু ধীর” — এটা কোনো রোগনির্ণয় নয়। বাধা মাত্র চারটি: CPU, মেমরি, ডিস্ক এবং নেটওয়ার্ক। নিচে পাঁচ মিনিটে এগুলোর কোনটি সমস্যা করছে তা চিহ্নিত করার একটি চেক অর্ডার দেওয়া হলো।
ধাপ ১: বড় ছবি
uptime
free -h
df -h
তিনটি কমান্ডই সঙ্গে সঙ্গে অর্ধেক সম্ভাবনা বাদ দিয়ে দেয়। যদি গড় লোড আপনার টিয়ারের কোর সংখ্যার চেয়ে স্পষ্টভাবে বেশি হয়, তাহলে একটি কিউ তৈরি হয়েছে — দেখুন Load average। available শূন্যের কাছাকাছি মানে মেমরি। যদি পার্টিশন ১০০% ভরা থাকে, আর খোঁজার দরকার নেই — পড়ুন Out of space।
ধাপ ২: ঠিক কোনটি বাধা
vmstat 2 5
প্রথম সারি ছাড়া বাকি সব গড় কলামগুলো দেখুন:
- বেশি
usওsy, বড়r— CPU-নির্ভর; - বেশি
wa, বড়b— ডিস্ক-নির্ভর; - শূন্য নয় এমন
siওso— সোয়াপিং হচ্ছে, অর্থাৎ মেমরি শেষ হয়ে যাচ্ছে; - বেশি
st— হাইপারভাইজারের নেওয়া সময়, এটি বাহ্যিক কারণ, সাপোর্টে যোগাযোগ করুন।
ধাপ ৩: অপরাধী খুঁজুন
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
iotop -boPan 3 | head -20 # apt install iotop
ss -tn state established | wc -l
লাইভ চিত্র htop বা btop-এ সহজে পড়া যায়। D স্টেটে থাকা প্রসেসগুলোর দিকে খেয়াল রাখুন — তারা ডিস্কের জন্য অপেক্ষা করছে এবং লোড বাড়াচ্ছে।
যদি অপরাধী আপনার অ্যাপ্লিকেশন হয়, তাহলে পরের প্রশ্নটি তার সম্পর্কে: ধীর ডেটাবেস কোয়েরি, অনুপস্থিত ইনডেক্স, অতিরিক্ত ওয়ার্কার, ডিপ্লয়ের পর অসীম লুপ। স্লোডাউন শুরু হওয়ার মুহূর্তটি লগের সঙ্গে মিলিয়ে দেখুন:
journalctl --since "1 hour ago" -p warning
ধাপ ৪: ইতিহাস দেখুন
প্যানেলে “Overview” খুলুন /hosting/vds/m/<id> এবং গত দিন ও সপ্তাহের গ্রাফগুলো দেখুন। তিনটি সাধারণ প্যাটার্ন:
- নির্দিষ্ট মুহূর্তে ধাপে ধাপে বৃদ্ধি — কিছু পরিবর্তন হয়েছে: একটি ডিপ্লয়, একটি আপডেট, একটি নতুন ক্রন জব;
- নির্ধারিত সময়ে নিয়মিত পিক — একটি ব্যাকগ্রাউন্ড টাস্ক; এটিকে রাতে সরান বা
niceওioniceদিয়ে সীমিত করুন; - সপ্তাহ ধরে সমান প্ল্যাটো — আপনি সহজেই আপনার টিয়ার ছাড়িয়ে গেছেন।
ফলাফল নিয়ে কী করবেন
| বাধা | দ্রুত পদক্ষেপ | দীর্ঘমেয়াদী সমাধান |
|---|---|---|
| CPU | অতিরিক্ত প্রসেস খুঁজে বন্ধ করুন | বেশি কোরের টিয়ার |
| মেমরি | ওয়ার্কার ও ডেটাবেস বাফার সীমিত করুন, সোয়াপ যোগ করুন | বেশি মেমরির টিয়ার |
| ডিস্ক | ionice দিয়ে ব্যাকআপ সীমিত করুন, লগ ছাঁটুন | উচ্চতর টিয়ার: কোর সংখ্যার সঙ্গে প্ল্যাটো বাড়ে |
| নেটওয়ার্ক | --bwlimit দিয়ে ব্যাকগ্রাউন্ড ডাউনলোড সীমিত করুন | ট্রাফিকের উৎস খতিয়ে দেখুন |
ডিস্ক প্ল্যাটো এভাবে হিসাব করা হয়: প্রতি কোরে ৬০ MB/s রাইট, ৬০-এর নিচে নয় এবং ৪০০-এর বেশি নয়, রিড দ্বিগুণ। যদি আপনি ধারাবাহিকভাবে প্ল্যাটোতে থাকেন, উপরে না উঠলে ডিস্ক আর দ্রুত হবে না — দেখুন Benchmark।
সাধারণ ভুল
- সঙ্গে সঙ্গে মেশিন রিবুট করা। রিবুট চিত্রটি মুছে দেয়, আর এক ঘণ্টা পর সব আবার পুনরাবৃত্তি হবে। আগে সংখ্যাগুলো সংগ্রহ করুন।
- একটি ফ্রেমের উপর ভরসা করা। htop শুরু করার মুহূর্তে একটি স্পাইক কিছুই বোঝায় না — এক মিনিট দেখুন।
- ভরা মেমরিকে সমস্যা মনে করা।
freeনয়,availableও সোয়াপ দেখুন। - বুঝতে না পেরে টিয়ার পরিবর্তন করা। একটি মেমরি লিক বা লুপিং স্ক্রিপ্ট আপনার সঙ্গে নতুন টিয়ারেও চলে যাবে। আবার ডাউনগ্রেড করা সমর্থিত নয়।
যদি CPU, মেমরি ও ডিস্ক শান্ত থাকে কিন্তু অ্যাপ্লিকেশন ধীর হয়, তাহলে বাধা মেশিনের বাইরে: একটি ধীর বাহ্যিক API, DNS, বা ক্লায়েন্টের নেটওয়ার্ক। আপনার প্রয়োজনীয় ঠিকানায়
curl -w '%{time_total}\n' -o /dev/null -sচেক করুন।