Skip to content
VDS · মনিটরিং ও পারফরম্যান্স

ডিস্ক লোড: iostat ও iotop

মেশিন ডিস্ক-বাউন্ড কি না, ঠিক কে লিখছে এবং সংখ্যাগুলোকে আপনার VPS টিয়ারের স্পিড লিমিটের সাথে কীভাবে সম্পর্কিত করবেন।

আপডেট: ২৩ আগস্ট, ২০২৬

ডিস্কই হলো “সবকিছু ধীর কিন্তু CPU অলস” সমস্যার সবচেয়ে সাধারণ কারণ। প্রসেসগুলো I/O-এর জন্য অপেক্ষা করে বসে থাকে, লোড অ্যাভারেজ বাড়তে থাকে, অথচ htop-এ প্রায় শূন্য CPU% দেখায়। চলুন দেখি কীভাবে সংখ্যায় এটি বোঝা যায়।

আপনাকে যা বরাদ্দ করা হয়েছে

নোডগুলোর ডিস্ক NVMe, তবে গতি টিয়ার অনুযায়ী সীমিত: লেখা — প্রতি কোর 60 MB/s, তবে 60-এর কম নয় এবং 400 MB/s-এর বেশি নয়; পড়ার গতি লেখার দ্বিগুণ। সীমার উপরে 30 সেকেন্ডের জন্য তিন গুণ বেশি বার্স্ট অনুমোদিত — একটি আর্কাইভ খুলতে বা প্রজেক্ট বিল্ড করতে যথেষ্ট, কিন্তু একটানা এক টেরাবাইট আপলোড করতে নয়।

টিয়ারকোরলেখা, MB/sপড়া, MB/s
VDS-1160120
VDS-22120240
VDS-34240480
VDS-46360720
VDS-5 এবং VDS-68 এবং 10400800

আপনার পরিমাপ যদি ঠিক এই সংখ্যাগুলোতে পৌঁছায়, তাহলে আপনি সীমায় পৌঁছে গেছেন — কিছু ভাঙেনি। এর বাইরে শুধু পরের টিয়ারে যাওয়াই সাহায্য করে।

iostat: বড় ছবি

apt install -y sysstat       # Debian, Ubuntu
dnf install -y sysstat       # AlmaLinux, CentOS Stream

iostat -xz 2

কমান্ডটি প্রতি দুই সেকেন্ডে একটি স্ন্যাপশট দেখায়। প্রথম আউটপুটটি বুট হওয়ার পর থেকে গড় — এটি বাদ দিন। vda বা sda লাইনটি দেখুন:

  • r/s, w/s — প্রতি সেকেন্ডে পড়া ও লেখার অপারেশন।
  • rkB/s, wkB/s — মেগাবাইট, 1024 দিয়ে ভাগ করুন। উপরের টেবিলের সাথে তুলনা করুন।
  • await — মিলিসেকেন্ডে প্রতি অপারেশনের গড় অপেক্ষা। এক অঙ্কের সংখ্যা স্বাভাবিক; দশ ও শতক মানে একটি কিউ তৈরি হয়েছে।
  • %util — ডিস্ক কতটা ব্যস্ত। একটানা 90–100 % মানে আপনি দেয়ালে ঠেকে গেছেন।

vmstat 2-ও কাজে লাগে: wa কলামটি (io wait) শতাংশে দেখায় CPU কতটা সময় শুধু ডিস্কের জন্য অপেক্ষা করছে।

iotop: আসলে কে লিখছে

apt install -y iotop && iotop -oPa

-o শুধু সক্রিয় প্রসেস দেখায়, -P থ্রেডের বদলে প্রসেস দেখায়, -a চালু হওয়ার পর থেকে জমা হওয়া ভলিউম দেখায়। এক মিনিট নজর রাখলেই আসল অপরাধী ধরা পড়বে: সাধারণত একটি ডেটাবেস, একটি লগ কালেক্টর বা একটি ব্যাকআপ।

ইন্টারঅ্যাকটিভ UI ছাড়া একবার যাচাই:

iotop -boPan 3 | head -20

যা পাবেন তা নিয়ে কী করবেন

  • জার্নাল লিখছে। এর আকার সীমিত করুন: journalctl --vacuum-size=200M এবং /etc/systemd/journald.conf-এ SystemMaxUse=200M। আরও জানতে দেখুন systemd journals।
  • ডেটাবেস লিখছে। ইনডেক্স না থাকার কারণে কোনো ফুল টেবিল স্ক্যান চলছে কি না, এবং বাফার খুব ছোট সেট করা আছে কি না — যার ফলে সবকিছু ডিস্কে যাচ্ছে — তা যাচাই করুন।
  • কাজের সময়ে ব্যাকআপ বা rsync। গতি সীমিত করুন: rsync --bwlimit=20M; আর্কাইভিংয়ের জন্য ionice -c3 nice -n19 tar ... ব্যবহার করুন, যাতে টাস্কটি ছেড়ে দেয়।
  • Swap। ডিস্ক যদি পেজিং নিয়ে ব্যস্ত থাকে, সমস্যা ডিস্কে নয়, মেমরিতে — পড়ুন Memory and swap।

সাধারণ ভুল

dd এবং conv=fdatasync দিয়ে গতি মাপা এবং একবার চালিয়েই সিদ্ধান্তে পৌঁছানো: প্রথম কয়েক সেকেন্ড বার্স্টে চলে এবং অতিরঞ্জিত ফলাফল দেয়। সঠিক পদ্ধতি আছে Benchmarking disk and network speed-এ।

ডিস্ক ভরে গেলেও “সবকিছু ধীর” মনে হয়: খালি জায়গা নেই, কোনো সার্ভিস টেম্পোরারি ফাইল লিখতে পারে না এবং হ্যাং করে। প্রথমে df -h দেখুন — এক সেকেন্ড লাগে।