SSD Nodes Learn 🎉 VPS $5.50/মাস থেকে
নির্দেশিকা Matt Connorদ্বারা Matt Connor

সাশ্রয়ী VPS কেনার আগে যা যাচাই করবেন

সাশ্রয়ী VPS অফারের আড়ালে থাকা vCPU ওভারসেল, আনলিমিটেড ব্যান্ডউইথ এবং নবায়ন মূল্যের ফাঁদগুলো বুঝুন। সার্ভার কেনার পর 30 মিনিটে পারফরম্যান্স যাচাইয়ের সঠিক পদ্ধতি এখানে জানুন।

সাশ্রয়ী VPS অফারে যা এড়িয়ে যাওয়া হয়

একটি সাশ্রয়ী VPS অফার উল্টো দিক থেকে পড়ুন, কারণ পৃষ্ঠার সবচেয়ে কম গুরুত্বপূর্ণ সংখ্যাটি হলো এর দাম। সার্ভারটি ভালো কি না তা নির্ভর করে এমন সব বিষয়ের ওপর যা বিজ্ঞাপনে লেখা থাকে না: vCPU সংখ্যার পেছনে থাকা ওভারসেল রেশিও (oversell ratio), "unlimited" শব্দের আড়ালে থাকা ফেয়ার ইউজ পলিসি, প্রথম মেয়াদের পর নবায়ন মূল্য এবং ব্যাকআপ ও IPv4 অ্যাড্রেসের জন্য আলাদা চার্জ আছে কি না। এই নির্দেশিকাটি একটি লিস্টিংয়ের প্রতিটি লাইন বিশ্লেষণ করবে এবং আপনাকে এমন কিছু অ্যাকসেপ্টেন্স টেস্ট দেবে যা সার্ভার পাওয়ার পরপরই চালিয়ে দেখতে পারেন, যাতে টাকা ফেরত পাওয়ার সুযোগ থাকতেই আপনি সিদ্ধান্ত নিতে পারেন।

এর মানে এই নয় যে কম দাম মানেই কোনো প্রতারণা। পুরনো হার্ডওয়্যার, ঘনবসতিপূর্ণ সার্ভার র‍্যাক, সেলফ-সার্ভিস সাপোর্ট এবং কম প্ল্যাটফর্ম রিডানডেন্সি থাকার কারণেই কম দামে সেবা দেওয়া সম্ভব হয়। আপনার কাজ হলো, ব্যবহারকারীরা সমস্যা খুঁজে পাওয়ার আগেই আপনি জেনে নিন আপনি কোন ধরনের সীমাবদ্ধতা মেনে নিয়েছেন। নিচে উল্লিখিত সবকিছু Ubuntu 24.04 এবং আগস্ট 2026-এ উপলব্ধ প্যাকেজগুলোর ওপর ভিত্তি করে তৈরি করা হয়েছে।

vCPU কোনো কোর নয়

vCPU হলো একটি শিডিউলিং স্লট, কোনো সিলিকন চিপ নয়। KVM (kernel-based virtual machine)-এ প্রতিটি vCPU হোস্টের একটি থ্রেড হিসেবে কাজ করে এবং হোস্ট শিডিউলার তার পালা এলে সেই থ্রেডটিকে একটি ফিজিক্যাল কোরে বসায়। একটি হোস্ট একটি ফিজিক্যাল কোরের বিপরীতে চারটি vCPU বিক্রি করতে পারে এবং প্রতিটি গেস্ট অপারেটিং সিস্টেম nproc-এ তার পূর্ণ সংখ্যাই দেখাবে। তালিকায় থাকা সংখ্যাটি হলো আপনার সর্বোচ্চ চাহিদার সীমা, এটি আপনার জন্য সংরক্ষিত কোনো সম্পদ নয়।

ওভারসেল রেশিও (oversell ratio) হলো হোস্ট প্রতি ফিজিক্যাল কোরে কতগুলো vCPU বিক্রি করছে তার অনুপাত। 1:1 রেশিওতে কোরটি শুধুমাত্র আপনার। সস্তা প্ল্যানগুলোতে এই অনুপাত বেশি থাকে এবং এই রেশিও সাধারণত প্রকাশ করা হয় না। তাই যে তালিকায় "dedicated core" বা "dedicated vCPU" লেখা নেই, সেটিকে শেয়ারড হিসেবে ধরে নিন। বেশিরভাগ কাজের জন্য শেয়ারড রিসোর্স ঠিকঠাক কাজ করে, কারণ বেশিরভাগ সার্ভারই অধিকাংশ সময় অলস থাকে। কিন্তু যখন আপনার ব্যস্ত সময় অন্য সবার ব্যস্ত সময়ের সাথে মিলে যায়, তখনই সমস্যা শুরু হয়।

আপনি গেস্টের ভেতর থেকেই এর প্রভাব পরিমাপ করতে পারেন। যখন আপনার vCPU চলার জন্য প্রস্তুত কিন্তু হোস্ট ফিজিক্যাল কোরটি অন্য কোনো গেস্টকে দিয়ে রেখেছে, তখন সেই অপেক্ষার সময়টিকে স্টিল টাইম (steal time) হিসেবে গণ্য করা হয়: এটি top-এর vmstat এবং %st-এর st কলামে দেখা যায়। স্টিল টাইম হলো আপনার নিজস্ব মেট্রিক্সে নয়েজি নেইবার (noisy neighbour) বা অন্য ব্যবহারকারীর প্রভাব দেখার উপায়, এবং এই গাইডের সবচেয়ে গুরুত্বপূর্ণ সংখ্যা এটি, কারণ কোনো লিস্টিং বা বিজ্ঞাপন এটিকে মিথ্যা প্রমাণ করতে পারে না।

ডেডিকেটেড কোর হলেও অন্যান্য দিক থেকে তা শেয়ারড থাকতে পারে। মেমোরি ব্যান্ডউইথ, লাস্ট লেভেল ক্যাশ এবং স্টোরেজ পাথ পুরো হোস্টের জন্য সাধারণ। "Dedicated vCPU" শুধুমাত্র পরিবর্তনের সবচেয়ে বড় উৎসটিকে দূর করে, কিন্তু সবটুকু নয়।

lscpu ব্যবহার করে CPU মডেলটিও পরীক্ষা করুন। দুটি প্ল্যানেই "4 vCPU" লেখা থাকতে পারে, অথচ তাদের সিঙ্গেল থ্রেড স্পিড দুই গুণ পর্যন্ত পার্থক্য হতে পারে, কারণ একটি হোস্ট হয়তো কয়েক জেনারেশন পুরনো CPU ব্যবহার করছে। বিল্ড এজেন্টের জন্য কম দামে পুরনো সিলিকন ব্যবহার করা যুক্তিসঙ্গত হতে পারে, কিন্তু চেকআউট পেজের জন্য এটি মোটেও ভালো নয়।

"Unlimited bandwidth" অন্তত চারটি ভিন্ন পণ্যের ক্ষেত্রে ব্যবহৃত হয়

ট্রাফিককে চারটি ভিন্ন উপায়ে বর্ণনা করা হয় এবং এগুলো একে অপরের পরিপূরক নয়।

  • একটি মিটারড (metered) অ্যালাউন্স। তালিকায় একটি সংখ্যা দেওয়া থাকে, যেমন "প্রতি মাসে 2 TB" বা অনুরূপ কিছু। গুরুত্বপূর্ণ বিষয় হলো সীমা অতিক্রম করলে কী ঘটে: অতিরিক্ত প্রতি TB-এর জন্য চার্জ কাটা হয়, নাকি মাস শেষ না হওয়া পর্যন্ত গতি কমিয়ে খুব ধীর করে দেওয়া হয়। জানার প্রয়োজন হওয়ার আগেই বিষয়টি নিশ্চিত হয়ে নিন।
  • ফেয়ার ইউজ ক্লজসহ একটি আনমিটারড (unmetered) প্ল্যান। ট্রাফিক গণনা করা হয় না, তবে গ্রহণযোগ্য ব্যবহারের নীতি (acceptable use policy) সংখ্যার পরিবর্তে শব্দের মাধ্যমে সীমা নির্ধারণ করে। সেই নথিতে "fair use", "sustained", "excessive" এবং "abuse" শব্দগুলো অনুসন্ধান করুন।
  • পোর্ট স্পিড ক্যাপ (port speed cap)। একটি 100 Mbit/s পোর্ট আপনাকে ভৌত সীমাবদ্ধতার মধ্যে রাখে, ট্রাফিক নীতি যা-ই বলুক না কেন।
  • শেষের দুটির মিশ্রণ: ধীর গতির পোর্টে আনমিটারড ট্রাফিক। সস্তা প্ল্যানগুলোতে এটি সবচেয়ে সাধারণ রূপ এবং যতক্ষণ আপনি পোর্টের গতি সম্পর্কে সচেতন থাকেন, এটি একটি স্বচ্ছ অফার।
ChartTraffic ceiling set by port speed alone, 30 days at full rate
The data behind this chart
[
  {
    "label": "100 Mbit/s",
    "tb_ceiling_30d": 32,
    "hours_per_tb": 22.2
  },
  {
    "label": "200 Mbit/s",
    "tb_ceiling_30d": 65,
    "hours_per_tb": 11.1
  },
  {
    "label": "500 Mbit/s",
    "tb_ceiling_30d": 162,
    "hours_per_tb": 4.4
  },
  {
    "label": "1 Gbit/s",
    "tb_ceiling_30d": 324,
    "hours_per_tb": 2.2
  }
]

পোর্টের গতি একটি চূড়ান্ত সীমা এবং এর হিসাব খুবই সহজ। 100 Mbit/s মানে প্রতি সেকেন্ডে 12.5 মেগাবাইট, তাই পূর্ণ গতিতে 30 দিন চললে পোর্টটি প্রায় 32 TB ডেটা স্থানান্তর করতে পারে। একই 30 দিন 1 Gbit/s পোর্টে চললে তা 324 TB ডেটা স্থানান্তর করবে। এখানে TB বলতে 10^12 বাইট বোঝানো হয়েছে, যা হোস্টরা বিলিংয়ের একক হিসেবে ব্যবহার করে। এটি একটি গাণিতিক হিসাব, পরিমাপ নয়; কোনো বাস্তব সার্ভারই পুরো এক মাস তার পোর্টের পূর্ণ গতি ব্যবহার করে না।

দ্বিতীয় কলামটি প্ল্যান পরিবর্তনের ক্ষেত্রে ভূমিকা রাখে। 100 Mbit/s পোর্টে এক টেরাবাইট ডেটা স্থানান্তর করতে প্রায় 22.2 ঘণ্টা এবং গিগাবিট পোর্টে 2.2 ঘণ্টা সময় লাগে। আপনার রিকভারি প্ল্যান যদি হয় "ব্যাকআপ নামিয়ে পুনরায় শুরু করা", তবে এই সংখ্যাটিই আপনার রিকভারি টাইম।

স্পেসিফিকেশনের এই লাইনে আরও দুটি বিষয় লুকিয়ে থাকে। "1 Gbit/s shared" মানে হলো পোর্টটি অন্যান্য গেস্টের সাথে শেয়ার করা হয়, তাই উপরের সীমাটি একটি প্রতিশ্রুতি নয়, বরং সেরা পরিস্থিতির হিসাব। এছাড়া কিছু হোস্ট মোট ভলিউমের পরিবর্তে স্যাম্পল করা রেটের 95তম পার্সেন্টাইল (95th percentile) অনুযায়ী ট্রাফিকের বিল করে, যা স্থিতিশীল লোডকে স্পাইকি (spiky) লোডের চেয়ে অনেক সস্তায় মূল্যায়ন করে।

প্ল্যানে যা-ই বলা থাকুক না কেন, আপনার নিজের ব্যবহার পরিমাপ করুন। vnstat ইন্টারফেস কাউন্টারগুলো পড়ে এবং হিস্ট্রি সংরক্ষণ করে।

sudo apt install -y vnstat
sudo systemctl enable --now vnstat
vnstat -d
vnstat -m

ইনস্টল করার পরপরই, vnstat Not enough data available yet. প্রদর্শন করবে কারণ এর ডেটাবেসে কোনো স্যাম্পল নেই। পরের দিন ফিরে আসুন এবং vnstat -m ব্যবহার করে মাসিক মোট ব্যবহারের হিসাব দেখুন, যা আপনার কেনা অ্যালাউন্সের সাথে তুলনা করতে পারবেন।

NVMe সংক্রান্ত দাবিটি কি সত্য, এবং আপনি কি তা যাচাই করতে পারেন?

lsblk -d -o NAME,ROTA,SIZE,MODEL

ROTA-এর মান 0 হওয়ার অর্থ হলো গেস্টকে জানানো হয়েছে যে ডিভাইসটি ঘূর্ণায়মান (rotational) নয়। এই মানটি হাইপারভাইজার থেকে আসে, তাই এটি নিচের মিডিয়ার পরিবর্তে হোস্ট যা প্রচার করছে তা বর্ণনা করে। MODEL কলামটি সাধারণত /dev/vda-এর মতো virtio ডিস্কের ক্ষেত্রে খালি থাকে এবং SCSI সংযুক্ত ডিস্কের জন্য একটি সাধারণ QEMU HARDDISK প্রদর্শন করে। আপনি একটি ভার্চুয়াল ডিস্ক দেখছেন, তাই এর লেবেল কোনো কিছুর প্রমাণ দেয় না।

যাচাই করার মতো গুরুত্বপূর্ণ বৈশিষ্ট্যটি হলো ল্যাটেন্সি (latency), এবং প্রকৃত পার্থক্যটি হলো লোকাল NVMe এবং নেটওয়ার্ক সংযুক্ত ভলিউমের মধ্যে। একটি নেটওয়ার্ক ভলিউম বড় ধরনের সিকোয়েন্সিয়াল থ্রুপুট দেখাতে পারে কিন্তু তবুও ধীরগতির মনে হতে পারে, কারণ থ্রুপুট পরিমাপ করা হয় অনেকগুলো রিকোয়েস্ট একসাথে চলার সময়, অথচ একটি ডাটাবেস একবারে একটি ছোট রাইট অপারেশনের জন্য অপেক্ষা করে। ল্যাটেন্সির জন্য queue depth 1-এ পরিমাপ করুন, তারপর IOPS (প্রতি সেকেন্ডে ইনপুট/আউটপুট অপারেশন)-এর জন্য গভীরতর কিউ (queue) ব্যবহার করুন।

sudo apt install -y fio
fio --name=lat --filename=fiotest --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=1 --numjobs=1 --runtime=60 --time_based --group_reporting
fio --name=iops --filename=fiotest --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=32 --numjobs=1 --runtime=60 --time_based --group_reporting
rm -f fiotest

clat percentiles ব্লকটি পড়ুন এবং বিশেষ করে 99.00তম লাইনটি দেখুন। এটি হলো আপনার রিকোয়েস্টগুলোর সবচেয়ে ধীরগতির এক শতাংশের কমপ্লিশন ল্যাটেন্সি, এবং ব্যবহারকারী ঠিক এই সময়টিতেই স্থবিরতা অনুভব করেন। একটি সাধারণ নির্দেশিকা হিসেবে, queue depth 1-এ লোকাল NVMe কয়েকশ মাইক্রোসেকেন্ডে সাড়া দেয় এবং নেটওয়ার্ক সংযুক্ত ভলিউম মিলিসেকেন্ডে সাড়া দেয়। কোনো প্রকাশিত সংখ্যার ওপর নির্ভর না করে আপনার নিজের দুটি রান তুলনা করুন এবং দিনে তিনবার এই পরীক্ষাটি চালান, কারণ অন্য টেন্যান্টদের সাথে শেয়ার করা ডিস্ক ভোর 03:00 এবং রাত 20:00-এ ভিন্ন আচরণ করে।

fio প্রথমে 1 GB ফাইলটি তৈরি করে, তাই ডিস্কে পর্যাপ্ত জায়গা রাখুন এবং মনে রাখবেন যে এই টেস্টটি আপনার প্ল্যানে বরাদ্দকৃত IOPS খরচ করে ফেলে। আপনি যদি কেবল একটি দ্রুত রিডিং পেতে চান, তবে ioping -c 20 . আপনাকে এক লাইনে ল্যাটেন্সি জানিয়ে দেবে। একটি বেঞ্চমার্ক তখনই মূল্যবান যখন আপনি তা পুনরাবৃত্তি করতে পারেন, তাই সঠিক কমান্ড লাইন এবং তারিখসহ আউটপুট সংরক্ষণ করুন।

কী অন্তর্ভুক্ত থাকে এবং অতিরিক্ত কীসের জন্য বিল করা হয়

  • IPv4. সাধারণত একটি ঠিকানা অন্তর্ভুক্ত থাকে। কিছু সাশ্রয়ী প্ল্যানে আপনাকে NAT (network address translation)-এর পেছনে একটি শেয়ারড ঠিকানা দেওয়া হয়, যেখানে মাত্র কয়েকটি পোর্ট ফরওয়ার্ড করা থাকে। এর মানে হলো, আপনি নিজের কোনো কিছু 443 পোর্টে চালাতে পারবেন না। ip -4 addr show scope global এবং curl -4 https://icanhazip.com দিয়ে যাচাই করুন। দুটি ভিন্ন উত্তর পাওয়ার অর্থ হলো আপনি NAT-এর পেছনে আছেন।
  • IPv6. একটি রাউটেড /64 আপনাকে কন্টেইনার এবং বাইরের জগত থেকে অ্যাক্সেসযোগ্য যেকোনো কিছুর জন্য ঠিকানা প্রদান করে। একটি একক /128 শুধুমাত্র আউটবাউন্ড ট্র্যাফিক এবং সামান্য কিছু কাজের জন্য কার্যকর।
  • ব্যাকআপ। স্বয়ংক্রিয় ব্যাকআপ সাধারণত একটি পেইড অ্যাড-অন। স্ন্যাপশট প্রায়ই বিনামূল্যে পাওয়া যায়, কিন্তু একটি স্ন্যাপশট যে ডিস্কের কপি তৈরি করে সেটি একই ইনফ্রাস্ট্রাকচারে থাকে। তাই এটি আপনাকে আপনার নিজের ভুল থেকে রক্ষা করলেও হোস্ট হারিয়ে যাওয়ার ঝুঁকি থেকে রক্ষা করে না। প্ল্যানে যা-ই অন্তর্ভুক্ত থাকুক না কেন, একটি কপি সবসময় সার্ভারের বাইরে রাখুন।
  • DDoS হ্যান্ডলিং। অনেক হোস্ট ভলিউমেট্রিক অ্যাটাক (distributed denial of service)-এর জবাবে একটি নির্দিষ্ট সময়ের জন্য আপনার IP ঠিকানাকে null route করে দেয়। এতে সার্ভার সুস্থ থাকে, কিন্তু ইন্টারনেট থেকে তা সম্পূর্ণ বিচ্ছিন্ন হয়ে যায়। ট্র্যাফিকের সীমা কত এবং null route কতক্ষণ স্থায়ী হয় তা জেনে নিন।
  • সাপোর্টের পরিধি। একটি আনম্যানেজড প্ল্যানে আপনি নিজেই সিস্টেম অ্যাডমিনিস্ট্রেটর, এবং হোস্টের দায়িত্ব হাইপারভাইজার ও নেটওয়ার্ক পর্যন্ত সীমাবদ্ধ। একই স্পেসিফিকেশন থাকা দুটি প্ল্যানের মধ্যে এটিই সবচেয়ে বড় প্রকৃত খরচের পার্থক্য।
  • লাইসেন্স এবং প্যানেল। একটি কন্ট্রোল প্যানেল, কমার্শিয়াল অপারেটিং সিস্টেম বা মেইল অ্যাড-অন বাবদ খরচ অনেক সময় সার্ভারের মাসিক ভাড়ার চেয়েও বেশি হতে পারে।

আপনি কোন ধরনের ভার্চুয়ালাইজেশন কিনছেন?

systemd-detect-virt

kvm অথবা qemu মানে হলো ফুল ভার্চুয়ালাইজেশন: এখানে আপনার নিজস্ব কার্নেল এবং আপনার পছন্দমতো লোড করা মডিউল ব্যবহারের সুবিধা থাকে। lxc, lxc-libvirt অথবা openvz মানে হলো এমন কন্টেইনার যা হোস্ট কার্নেল শেয়ার করে। none মানে হলো বেয়ার মেটাল।

শেয়ার করা কার্নেলের ক্ষেত্রে এই পার্থক্যগুলো গুরুত্বপূর্ণ। sudo modprobe wireguard ব্যর্থ হয় এবং ip link add dev wg0 type wireguard আউটপুট হিসেবে RTNETLINK answers: Operation not supported প্রদান করে, কারণ একটি কন্টেইনার এমন কোনো কার্নেল মডিউল লোড করতে পারে না যা হোস্ট লোড করেনি। free -h-এ lxcfs না থাকলে এটি আপনার মেমরির পরিবর্তে হোস্টের মেমরি দেখাতে পারে, ফলে আপনার মনিটরিং টুল এমন তথ্য দেখায় যা আপনার সার্ভারের সাথে সম্পর্কিত নয়। সোয়াপ (swap) প্রায়শই অন্যান্য কন্টেইনারের সাথে শেয়ার করা থাকে এবং আপনার VPS-এর ভেতরে ভার্চুয়াল মেশিন চালানো একেবারেই সম্ভব নয়। কন্টেইনার প্ল্যানগুলো সস্তা হওয়ার পেছনে কারণ আছে, তবে স্ট্যাটিক সাইট বা ছোট অ্যাপ্লিকেশনের জন্য এগুলোই সঠিক পছন্দ।

রিনিউয়াল বা নবায়নের মূল্য কত?

বিজ্ঞাপনে দেওয়া মূল্য প্রায়শই শুধুমাত্র প্রথম মেয়াদের জন্য প্রযোজ্য হয়। অর্ডার পেজে "renews at" লেখাটি এবং ডিসকাউন্টের সাথে যুক্ত মেয়াদের দৈর্ঘ্য লক্ষ্য করুন। এক বছর মেয়াদী ডিসকাউন্ট এবং পুরো প্ল্যানের মেয়াদের জন্য নির্ধারিত ডিসকাউন্ট—উভয়ই প্রথম ইনভয়েসে একই রকম মনে হলেও আসলে ভিন্ন পণ্য।

রিফান্ড বা অর্থ ফেরতের শর্তাবলীও একইভাবে সতর্কতার সাথে পড়ুন। মানি-ব্যাক গ্যারান্টির সময়সীমা কতদিন, তা অর্ডার করার সময় থেকে নাকি সার্ভিস চালু হওয়ার সময় থেকে গণনা করা হয়, অতিরিক্ত IP address-এর মতো অ্যাড-অনগুলো রিফান্ডযোগ্য কি না এবং বার্ষিক অগ্রিম পেমেন্ট আনুপাতিক হারে (pro rata) ফেরত পাওয়া যাবে কি না, তা দেখে নিন। এরপর রিনিউয়াল তারিখের এক সপ্তাহ আগে আপনার ক্যালেন্ডারে একটি রিমাইন্ডার সেট করুন, কারণ ইনভয়েস জেনারেট হওয়ার আগেই সার্ভিস ছেড়ে দেওয়া সাশ্রয়ী।

পরবর্তীতে সার্ভিস পরিবর্তন করাও বিনামূল্যে হয় না। কয়েকশ গিগাবাইট ডেটা স্থানান্তর করা, কনফিগারেশন পুনরায় তৈরি করা, DNS (domain name system) time to live ভ্যালুগুলোর জন্য অপেক্ষা করা এবং মেইল সার্ভারের ক্ষেত্রে IP reputation পুনরায় তৈরি করতে পুরো সপ্তাহান্তের সময় লেগে যেতে পারে। যখন কোনো সাশ্রয়কে আকর্ষণীয় মনে হবে, তখন এই সপ্তাহান্তের সময়ের শ্রমকেও খরচের হিসেবে ধরুন। একটি VPS-এর প্রকৃত বার্ষিক খরচ হলো সেই সংখ্যা যা দিয়ে তুলনা করা উচিত, প্রথম মাসের খরচ দিয়ে নয়।

ত্রিশ মিনিটের অ্যাকসেপ্টেন্স টেস্ট

কোনো কিছু মাইগ্রেট করার আগে এবং রিফান্ড উইন্ডো খোলা থাকা অবস্থায় নতুন বক্সে এটি রান করুন। প্রথমে এটিকে সুরক্ষিত করুন: নতুন VPS-এ প্রথম দশ মিনিট অংশে ইউজার অ্যাকাউন্ট, কি (keys) এবং ফায়ারওয়াল সম্পর্কে আলোচনা করা হয়েছে। এরপর টুলগুলো ইনস্টল করুন।

sudo apt update
sudo apt install -y sysbench fio ioping sysstat stress-ng vnstat mtr-tiny curl

চেক 1: তারা আসলে আমাকে কী দিয়েছে?

systemd-detect-virt
nproc
lscpu | grep -E 'Model name|MHz|Hypervisor'
free -h
lsblk -d -o NAME,ROTA,SIZE,MODEL
ip -4 addr show scope global
curl -4 -s https://icanhazip.com

আপনি ভার্চুয়ালাইজেশনের ধরন, একটি CPU মডেল এবং মেমোরির পরিমাণ দেখতে পাবেন, যা আপনার কেনা প্ল্যানের সাথে কয়েক শতাংশের মধ্যে থাকা উচিত। free -h যদি প্ল্যানের চেয়ে অনেক বেশি RAM দেখায়, তবে সেটি lxcfs ছাড়া একটি কন্টেইনার, কোনো বোনাস নয়। curl থেকে পাওয়া পাবলিক অ্যাড্রেস যদি ip -4 addr-এ না দেখা যায়, তবে এর অর্থ হলো IPv4 অ্যাড্রেসটি শেয়ার করা।

চেক 2: একটি থ্রেডের গতি কেমন এবং লোডের সময় স্টিল (steal) কতটুকু?

sysbench cpu --cpu-max-prime=20000 --threads=1 run

events per second লাইনটি রেকর্ড করুন। সিঙ্গেল থ্রেড স্পিড নির্ধারণ করে একটি পেজ কত দ্রুত রেন্ডার হবে এবং বিল্ড হতে কত সময় লাগবে; সস্তা প্ল্যানগুলোর মধ্যে এই সংখ্যাটিই সবচেয়ে বেশি পার্থক্য তৈরি করে। এখন প্রতিটি vCPU-তে লোড দিন এবং দেখুন শিডিউলার আপনাকে আসলে কী দিচ্ছে।

stress-ng --cpu 0 --timeout 300s &
vmstat 1 30
mpstat -P ALL 1 10

--cpu 0 প্রতিটি অনলাইন CPU-এর জন্য একটি করে ওয়ার্কার শুরু করে। vmstat-এ st কলাম এবং mpstat-এ %steal পর্যবেক্ষণ করুন। শেয়ারড প্ল্যানে মাঝে মাঝে সিঙ্গেল ডিজিট স্টিল থাকা স্বাভাবিক। যদি স্টিল কয়েক মিনিট ধরে ডাবল ডিজিটে থাকে, তবে এর অর্থ হলো ফিজিক্যাল কোরগুলো ওভারসাবস্ক্রাইব করা, অর্থাৎ আপনার কাজ অন্য কোনো টেন্যান্টের পেছনে কিউতে (queue) আছে। লোড থাকা অবস্থায় আবার sysbench রান করুন: সিঙ্গেল থ্রেড স্কোর যদি কমে যায়, তবে এর অর্থ হলো আপনার vCPU-গুলো একে অপরের সাথে প্রতিযোগিতা করছে, যার মানে সাধারণত তারা আলাদা কোর না হয়ে একই কোরের সিবলিং থ্রেড। যদি স্কোর কম হয় কিন্তু স্টিল প্রায় শূন্য থাকে, তবে এটি অন্য একটি ক্ষেত্র—হোস্ট কর্তৃক আরোপিত CPU ক্যাপ, যা আপনি গেস্টের ভেতর থেকে সরাসরি দেখতে পাবেন না।

চেক 3: কিউ ডেপথ 1-এ ডিস্ক কেমন আচরণ করে?

NVMe সেকশন থেকে দুটি fio কমান্ড রান করুন এবং উভয় ফলাফলই সংরক্ষণ করুন: কিউ ডেপথ 1-এ 99তম পার্সেন্টাইল ল্যাটেন্সি এবং ডেপথ 32-এ IOPS। এরপর রাইট (write) স্পিড চেক করুন, কারণ অনেক ভলিউম এই দিকে অনেক ধীরগতির হয়।

fio --name=wlat --filename=fiotest --size=1G --direct=1 --ioengine=libaio --rw=randwrite --bs=4k --iodepth=1 --numjobs=1 --runtime=30 --time_based --group_reporting
rm -f fiotest

একটি dd সিকোয়েন্সিয়াল ফিগার হলো সেই সংখ্যা যা বিজ্ঞাপনে উল্লেখ করা হয়, কিন্তু এটি আপনার জন্য সবচেয়ে কম কার্যকর, কারণ ডেটাবেস বা ব্যস্ত ওয়েব অ্যাপ্লিকেশন সিকোয়েন্সিয়াল স্ট্রিমিংয়ের কাজ করে না। আপনি যদি তুলনা করতে চান তবে এটি সংগ্রহ করুন। ল্যাটেন্সির ওপর ভিত্তি করে সিদ্ধান্ত নিন।

চেক 4: আপনার ব্যবহারকারীদের অবস্থান থেকে নেটওয়ার্ক কেমন দেখাচ্ছে?

প্রথমে VPS-এ বড় কোনো ফাইল ডাউনলোড করুন।

curl -o /dev/null -w 'in: %{speed_download} bytes/s\n' https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.tar.xz

এটি আপনার সার্ভারে আসার একটি পথ পরীক্ষা করে, অন্য কিছু নয়। যে দিকটি গুরুত্বপূর্ণ তা হলো আপনার ব্যবহারকারীরা যে পথ ব্যবহার করে, তাই একটি ফাইল সার্ভ করুন এবং তাদের কাছাকাছি কোনো মেশিন থেকে সেটি ডাউনলোড করুন।

fallocate -l 100M /var/tmp/100mb.bin
python3 -m http.server 8080 --directory /var/tmp

এরপর, আপনার অডিয়েন্সের কাছাকাছি কোনো ল্যাপটপ বা সার্ভার থেকে:

curl -o /dev/null -w 'down: %{speed_download} bytes/s\n' http://YOUR_SERVER_IP:8080/100mb.bin
mtr --report --report-cycles 50 YOUR_SERVER_IP

এটি করার সময় ফায়ারওয়ালে পোর্ট 8080 খোলা থাকতে হবে, তাই কাজ শেষে এটি বন্ধ করুন, ফাইলটি ডিলিট করুন এবং Ctrl+C চেপে Python সার্ভারটি থামিয়ে দিন। mtr আউটপুটে, শেষ লাইনের লস (loss) কলামটি পড়ুন। মাঝখানের কোনো হপে লস থাকা কিন্তু গন্তব্যে না থাকা স্বাভাবিক, কারণ রাউটারগুলো ICMP (internet control message protocol) রিপ্লাইকে কম গুরুত্ব দেয় যা mtr গণনা করে, এটি আপনার ট্রাফিকের লস নয়। শেষ লাইনে লস থাকা মানে সেটি প্রকৃত লস।

আপনার ব্যবহারকারীদের পিক আওয়ারে নেটওয়ার্ক টেস্টটি পুনরায় করুন। রাত 02:00 টায় একটি মাত্র স্যাম্পল আপনাকে কেবল একটি শান্ত নেটওয়ার্কের তথ্যই দেবে।

তারিখসহ চারটি ফলাফলই একটি ফাইলে সেভ করে রাখুন এবং এক মাস পর আবার রান করুন। যে প্ল্যানটি প্রথম দিনে ঠিক ছিল কিন্তু ষষ্ঠ সপ্তাহে ধীরগতির হয়ে গেছে, তার মানে হলো হোস্টের ধারণক্ষমতা পূর্ণ হয়ে গেছে। প্রথম দিনের সংখ্যাগুলো আপনার কাছে থাকলে আপনি অনুমান না করে নিশ্চিতভাবে বিষয়টি জানতে পারবেন।

কখন সস্তা VPS বেছে নেওয়া সঠিক সিদ্ধান্ত

কম দামের বিনিময়ে আপনি বাস্তব কিছু সুবিধা পান, আবার কিছু বাস্তব সীমাবদ্ধতাও মেনে নিতে হয়। পুরনো CPU, উচ্চ oversell ratio, ধীরগতির network storage, self-service support এবং কম redundancy-র কারণেই মূলত দাম কম রাখা সম্ভব হয়। কাজের ধরনের সাথে এই সীমাবদ্ধতাগুলো মিলিয়ে নিন।

development box, CI runner, VPN endpoint, monitoring node, backup target বা static site-এর জন্য সস্তা VPS বেছে নেওয়া সঠিক। এ ধরনের কাজের ক্ষেত্রে সার্ভার কিছুক্ষণ ধীরগতির হলেও বড় কোনো সমস্যা হয় না। কিন্তু যেখানে latency বা বিলম্বই মূল বিষয়, সেখানে সস্তা সার্ভার ব্যবহার করা ভুল সিদ্ধান্ত। যেমন: checkout page, interactive API, game server বা এমন কোনো database যার ওপর অন্য কোনো service নির্ভরশীল। উপরের পরীক্ষাটি আপনাকে জানিয়ে দেবে আপনি কী ধরনের সার্ভার কিনেছেন, এবং এটি এমন সময়ে জানাচ্ছে যখন এর জন্য আপনাকে কোনো বাড়তি মূল্য দিতে হচ্ছে না।

FAQ

সস্তা VPS অফারে vCPU বলতে কী বোঝায়?

একটি vCPU হলো আপনার গেস্ট সিস্টেমের জন্য বরাদ্দকৃত একটি ভার্চুয়াল প্রসেসর, যা হোস্টের শিডিউলার যখন সম্ভব তখন একটি ফিজিক্যাল কোরের থ্রেডের সাথে ম্যাপ করে। যদি না অফারে "dedicated core" বা "dedicated vCPU" লেখা থাকে, তবে এটি মূলত CPU টাইম ব্যবহারের একটি অনুমতি, কোনো সংরক্ষিত হার্ডওয়্যার নয়। হোস্ট প্রোভাইডাররা তাদের মোট কোরের সংখ্যার চেয়ে বেশি vCPU বিক্রি করে এবং এই অনুপাত সাধারণত প্রকাশ করা হয় না, তাই এটি নিজে পরীক্ষা করে দেখুন। stress-ng --cpu 0 --timeout 300s চালান এবং vmstat 1-এর st কলামটি পর্যবেক্ষণ করুন। Steal টাইম যদি দুই অঙ্কের ঘরে থাকে, তার মানে আপনি এমন কোরের জন্য অপেক্ষা করছেন যা অন্য গেস্টরা ব্যবহার করছে।

"Unlimited bandwidth" কি সত্যিই অসীম?

না, এবং এই সীমাবদ্ধতা সাধারণত প্ল্যানের বর্ণনার বাইরে দুটি জায়গায় থাকে। Acceptable use policy-তে লিখিতভাবে একটি ফেয়ার ইউজ লিমিট দেওয়া থাকে এবং পোর্ট স্পিড বাইট হিসেবে একটি সর্বোচ্চ সীমা নির্ধারণ করে। একটি 100 Mbit/s পোর্ট পূর্ণ গতিতে চললেও 30 দিনে 32 TB-এর বেশি ডেটা আদান-প্রদান করতে পারে না। তাই পোর্টের গতি সম্পর্কে নিশ্চিত হোন এবং পলিসিতে "fair use" ও "sustained" শব্দগুলো খুঁজুন। এরপর vnstat -m ব্যবহার করে আপনার প্রকৃত ব্যবহারের হিসাব রাখুন এবং অনুমোদিত সীমার সাথে তুলনা করুন।

আমার VPS সত্যিই NVMe ব্যবহার করছে কি না তা কীভাবে বুঝব?

গেস্ট সিস্টেমের ভেতর থেকে ফিজিক্যাল মিডিয়া নিশ্চিত করা সম্ভব নয়, কারণ lsblk শুধুমাত্র হাইপারভাইজার যা প্রদর্শন করে তাই দেখায়: ROTA 0 এবং একটি খালি বা জেনেরিক মডেল স্ট্রিং। আপনি যা পরিমাপ করতে পারেন তা হলো এর আচরণ। --iodepth=1-এ --direct=1 ব্যবহার করে fio চালান এবং 99.00তম পার্সেন্টাইল কমপ্লিশন ল্যাটেন্সি দেখুন। লোকাল NVMe কয়েকশ মাইক্রোসেকেন্ডের মধ্যে সাড়া দেয়, আর নেটওয়ার্ক অ্যাটাচড ভলিউম মিলিসেকেন্ডে সাড়া দেয়, এমনকি যদি এর সিকোয়েন্সিয়াল থ্রুপুট দেখতে ভালোও লাগে। সারাদিনে কয়েকবার এটি পরীক্ষা করুন, কারণ একটি শেয়ারড ডিস্ক 03:00 এবং 20:00 সময়ে একই রকম পারফরম্যান্স নাও দিতে পারে।

রিফান্ড উইন্ডো শেষ হওয়ার আগে আমার কী কী পরীক্ষা করা উচিত?

এই ক্রমানুসারে চারটি জিনিস পরীক্ষা করুন। systemd-detect-virt, lscpu এবং free -h থেকে সার্ভারটি আসলে কী তা দেখুন। sysbench cpu --cpu-max-prime=20000 --threads=1 run থেকে সিঙ্গেল থ্রেড স্পিড পরীক্ষা করুন। vmstat 1 দিয়ে পর্যবেক্ষণ করে পূর্ণ লোডে stress-ng --cpu 0 থেকে Steal টাইম দেখুন। কিউ ডেপথ 1-এ fio ব্যবহার করে ডিস্ক ল্যাটেন্সি পরীক্ষা করুন। এরপর আপনার ব্যবহারকারীদের কাছাকাছি কোনো মেশিন থেকে mtr ব্যবহার করে নেটওয়ার্ক পরিমাপ করুন এবং সার্ভার থেকে একটি ফাইল ডাউনলোড করে দেখুন। এই সবকিছুর জন্য 30 মিনিট সময়ই যথেষ্ট, এবং কোনো কিছু মাইগ্রেট করার আগেই এটি করলে রিফান্ড উইন্ডোকে আপনি লিভারেজ হিসেবে ব্যবহার করতে পারবেন।