ডিস্ক স্পিড: বেসলাইন ও বার্স্ট
টিয়ার অনুযায়ী ডিস্ক স্পিড লিমিট কীভাবে হিসাব হয়, কেন 30-সেকেন্ডের বার্স্ট দরকার, প্রকৃত স্পিড কীভাবে মাপবেন এবং সীমায় পৌঁছালে কী করবেন।
আপডেট: ২৩ আগস্ট, ২০২৬
VPS-এ ডিস্ক NVMe, কিন্তু গতি টিয়ার দ্বারা সীমিত, যাতে একটি মেশিন নোডের শেয়ার করা রিসোর্স খেয়ে না ফেলে। এই সংখ্যাগুলো বুঝলে “CPU ফ্রি থাকলেও ডেটাবেস কেন ধীর” — এই প্রশ্নের উত্তর পেয়ে যাবেন।
কীভাবে হিসাব করা হয়
রাইট বেসলাইন প্রতি কোর 60 MB/s, তবে 60-এর কম নয় এবং 400 MB/s-এর বেশি নয়। রিড হলো রাইট বেসলাইনের দ্বিগুণ। বেসলাইনের উপরে, তার তিন গুণ মানের একটি বার্স্ট 30 সেকেন্ডের জন্য পাওয়া যায়।
| টিয়ার | কোর | রাইট বেসলাইন | রিড বেসলাইন | রাইট বার্স্ট (30 সেকেন্ড) |
|---|---|---|---|---|
| VDS-1 | 1 | 60 MB/s | 120 MB/s | 180 MB/s |
| VDS-2 | 2 | 120 MB/s | 240 MB/s | 360 MB/s |
| VDS-3 | 4 | 240 MB/s | 480 MB/s | 720 MB/s |
| VDS-4 | 6 | 360 MB/s | 720 MB/s | 1080 MB/s |
| VDS-5 | 8 | 400 MB/s | 800 MB/s | 1200 MB/s |
| VDS-6 | 10 | 400 MB/s | 800 MB/s | 1200 MB/s |
বার্স্ট যা যা দরকার তা কভার করে: অ্যাপ্লিকেশন স্টার্টআপ, আর্কাইভ এক্সট্রাক্ট করা, মাইগ্রেশন প্রয়োগ করা। স্থির রাইট স্ট্রিম — গিগাবাইট কপি করা, একটি বিল্ড, বড় ডেটাবেস স্ক্যান করা — বেসলাইনে চলে।
কীভাবে মাপবেন
sudo apt install -y fio
fio --name=w --rw=write --bs=1M --size=2G --numjobs=1 \
--runtime=60 --time_based --end_fsync=1 --directory=/var/tmp
প্রথম কয়েক সেকেন্ডে বার্স্ট দেখা যাবে, তারপর গতি বেসলাইনে নেমে আসবে — এটাই স্বাভাবিক ও প্রত্যাশিত চিত্র, কোনো ত্রুটি নয়।
প্যাকেজ ইনস্টল না করেই দ্রুত মোটামুটি পরীক্ষা:
dd if=/dev/zero of=/var/tmp/testfile bs=1M count=2048 oflag=direct
rm /var/tmp/testfile
কাজের সময়ে প্রোডাকশন মেশিনে ডিস্ক টেস্ট চালাবেন না। টেস্টটি সত্যিই সমস্ত উপলব্ধ ব্যান্ডউইথ খেয়ে ফেলবে, আর সেই কয়েক মিনিটে আপনার সাইটের রেসপন্স আসতে সেকেন্ড লেগে যাবে। আর টেস্ট ফাইল ফেলে রাখবেন না: 40 GB ডিস্কে দুই গিগাবাইট একটি লক্ষণীয় অংশ, দেখুন ডিস্ক স্পেস।
কীভাবে বুঝবেন যে ডিস্কই বটলনেক
sudo apt install -y sysstat
iostat -x 2 5
vmstat 2 5
দুটি মেট্রিক দেখুন: %util 100-এর কাছাকাছি এবং await কয়েক ডজন মিলিসেকেন্ডে থাকা ডিস্ক কিউ নির্দেশ করে। vmstat-এও লক্ষণ একই — বাড়তে থাকা b কলাম (অপেক্ষমাণ প্রসেস) এবং কম CPU ব্যবহারের শতাংশ।
আরেকটি উপসর্গ: প্রায় অলস CPU-এর সঙ্গে উচ্চ load average। Linux-এর load average ডিস্কের জন্য অপেক্ষমাণ প্রসেসও গোনে।
ঠিক কে লিখছে:
sudo iotop -o -b -n 3
বটলনেকে পড়লে কী করবেন
- সময়ে ভাগ করে নিন। কপি, রেজিস্ট্রি বিল্ড, রিপোর্ট — রাতে এবং একই সময়ে নয়। দেখুন নির্ধারিত কাজ।
- ব্যাকগ্রাউন্ড টাস্ক সীমিত করুন। যেসব জরুরি নয় সেগুলোর জন্য
rsync --bwlimit,nice -n 19 ionice -c3 <command>। - রাইট কমান। লগের আকার সীমিত করুন, অ্যাপ্লিকেশনে অতিরিক্ত ভার্বোসিটি বন্ধ করুন, ক্যাশে মেমোরিতে (
tmpfs) সরান যদি তা রিবুটে টিকে থাকে। - ডেটাবেস টিউন করুন। PostgreSQL ও MySQL-এ রাইটের সিংহভাগই ট্রানজেকশন লগ। বাফারের জন্য বেশি মেমোরি মানে ডিস্ক অ্যাক্সেস কম।
- উপরের টিয়ারে যান। কোরের সঙ্গে বেসলাইন বাড়ে: VDS-1 থেকে VDS-2-তে তা দ্বিগুণ হয়। পরিকল্পিত আপগ্রেড কেবল উপরের দিকেই সম্ভব, পরিশোধিত মেয়াদের বাকি দিনগুলোর জন্য অতিরিক্ত পেমেন্টসহ।
সাধারণ ভুল
oflag=directছাড়াddদিয়ে গতি মাপা। ডেটা পেজ ক্যাশে জমা হয়, আর সংখ্যাগুলো ফুলে ওঠে।- বার্স্টকে স্থায়ী গতি ভাবা। প্রথম 30 সেকেন্ড দ্রুত, তারপর বেসলাইন — এটাই ডিজাইন।
- অ্যাক্টিভ ডিস্কে swap রেখে সেটিতে swap করা। মেমোরি কম হলে swap ডিস্ককে বটলনেকে পরিণত করে: কন্টেইনার সীমিত করাই ভালো, দেখুন রিসোর্স সীমা।