SSD Nodes Learn 🎉 VPS از $5.50/ماه
راهنماها Matt Connorتوسط Matt Connor

راهنمای بررسی پیشنهادهای ارزان VPS و نکات پنهان آن

پیش از خرید VPS ارزان، این نکات را بخوانید: تحلیل oversell در vCPU، بندهای محدودیت پهنای باند، قیمت تمدید و آزمون 30 دقیقه‌ای برای سنجش کیفیت سرور روی Ubuntu 24.04.

آنچه در پیشنهادهای ارزان VPS ناگفته می‌ماند

پیشنهادهای ارزان VPS را از آخر به اول بخوانید، زیرا قیمت، کم‌ارزش‌ترین عدد در آن صفحه است. آنچه تعیین می‌کند آیا سرور کیفیت مناسبی دارد یا خیر، بخشی است که در لیست‌بندی ذکر نمی‌شود: نسبت oversell پشت تعداد vCPU، بند استفاده منصفانه (fair use) پشت کلمه "unlimited"، قیمت تمدید پس از دوره اول، و اینکه آیا هزینه پشتیبان‌گیری و آدرس IPv4 به‌صورت جداگانه محاسبه می‌شود یا خیر. این راهنما خط‌به‌خط یک لیست‌بندی را بررسی می‌کند و سپس یک آزمون پذیرش به شما می‌دهد تا زمانی که هنوز امکان بازپس‌گیری وجه را دارید، روی سرور اجرا کنید.

هیچ‌کدام از این موارد به این معنا نیست که قیمت پایین یک فریب است. سخت‌افزار قدیمی‌تر، تراکم بیشتر سرورها، پشتیبانی سلف‌سرویس و افزونگی کمتر پلتفرم، دلایلی هستند که قیمت پایین را ممکن می‌سازند. وظیفه شما این است که پیش از آنکه کاربران‌تان متوجه شوند، بدانید چه معامله‌ای را پذیرفته‌اید. تمام موارد زیر روی Ubuntu 24.04 و با بسته‌های موجود در اوت 2026 اجرا می‌شوند.

یک vCPU یک هسته فیزیکی نیست

یک vCPU در واقع یک اسلات زمان‌بندی است و نه یک قطعه سیلیکونی. در KVM (ماشین مجازی مبتنی بر هسته)، هر vCPU یک ترد (thread) روی میزبان است و زمان‌بند میزبان، آن ترد را هنگامی که نوبتش برسد روی یک هسته فیزیکی قرار می‌دهد. یک میزبان می‌تواند چهار vCPU را به ازای یک هسته فیزیکی بفروشد و هر مهمان همچنان تعداد کامل آن‌ها را در nproc گزارش می‌کند. عددی که در لیست مشخصات آمده، سقف مقداری است که می‌توانید درخواست کنید و هیچ اطلاعاتی درباره آنچه واقعاً برای شما رزرو شده است، ارائه نمی‌دهد.

نسبت oversell نشان‌دهنده تعداد vCPUهایی است که یک میزبان به ازای هر هسته فیزیکی می‌فروشد. در نسبت 1:1، هسته منحصراً در اختیار شماست. پلن‌های ارزان‌تر نسبت‌های بالاتری دارند و این نسبت تقریباً هرگز منتشر نمی‌شود؛ بنابراین هر لیست مشخصاتی که عبارت "dedicated core" یا "dedicated vCPU" را ذکر نکرده است، به عنوان اشتراکی در نظر بگیرید. اشتراکی بودن برای اکثر کارها مناسب است، زیرا بیشتر سرورها در بیشتر مواقع بیکار هستند. این مدل زمانی دچار مشکل می‌شود که ساعت اوج مصرف شما با ساعت اوج مصرف دیگران همزمان باشد.

شما می‌توانید تأثیر این موضوع را از داخل مهمان اندازه‌گیری کنید. هنگامی که vCPU شما آماده اجراست اما میزبان هسته فیزیکی را به مهمان دیگری اختصاص می‌دهد، آن زمان انتظار به عنوان steal time محاسبه می‌شود: ستون st در vmstat و %st در top. Steal time نشان می‌دهد که چگونه یک همسایه پرمصرف (noisy neighbour) در معیارهای شما ظاهر می‌شود و این مفیدترین عدد در این راهنماست، زیرا لیست مشخصات نمی‌تواند آن را جعل کند.

یک هسته اختصاصی (dedicated core) همچنان از جنبه‌های دیگر اشتراکی است. پهنای باند حافظه، کش سطح آخر (last level cache) و مسیر ذخیره‌سازی متعلق به کل میزبان هستند. "Dedicated vCPU" بزرگ‌ترین منبع تغییرات (variance) را حذف می‌کند، اما همه آن‌ها را از بین نمی‌برد.

مدل CPU را نیز با lscpu بررسی کنید. دو پلن ممکن است هر دو "4 vCPU" ذکر شده باشند، در حالی که سرعت تک‌ترد آن‌ها تا دو برابر متفاوت است؛ زیرا یکی از میزبان‌ها چندین نسل قدیمی‌تر است. سیلیکون قدیمی با قیمت پایین برای یک عامل ساخت (build agent) معامله‌ای منصفانه است، اما برای یک صفحه پرداخت (checkout page) انتخاب ضعیفی محسوب می‌شود.

عبارت "پهنای باند نامحدود" حداقل به چهار محصول مختلف اشاره دارد

ترافیک شبکه به چهار روش توصیف می‌شود که جایگزین یکدیگر نیستند.

  • سهمیه اندازه‌گیری‌شده (Metered): در لیست مشخصات، عددی مانند "2 ترابایت در ماه" یا مشابه آن ذکر می‌شود. نکته مهم این است که پس از اتمام این سهمیه چه اتفاقی می‌افتد: آیا هزینه اضافی برای هر ترابایت دریافت می‌شود یا سرعت تا زمان شروع ماه بعد به شدت کاهش می‌یابد؟ پیش از آنکه به این اطلاعات نیاز پیدا کنید، از وضعیت آن مطلع شوید.
  • طرح بدون اندازه‌گیری (Unmetered) با بند استفاده منصفانه: ترافیک شمارش نمی‌شود، اما سیاست استفاده قابل‌قبول (AUP)، محدودیت را به جای اعداد با کلمات تعیین می‌کند. در آن سند به دنبال واژه‌های "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 ترابایت ترافیک جابه‌جا می‌کند. همین 30 روز روی یک پورت 1 Gbit/s معادل 324 ترابایت است. در اینجا TB به معنای 10^12 بایت است، واحدی که میزبان‌ها بر اساس آن صورت‌حساب صادر می‌کنند. این یک محاسبه ریاضی است، نه یک اندازه‌گیری، و هیچ سرور واقعی پورت خود را برای یک ماه به‌طور مداوم با حداکثر ظرفیت استفاده نمی‌کند.

ستون دوم همان چیزی است که طرح‌ها را متمایز می‌کند. انتقال یک ترابایت داده حدود 22.2 ساعت روی پورت 100 Mbit/s و 2.2 ساعت روی پورت گیگابیتی زمان می‌برد. اگر برنامه بازیابی شما "دانلود بک‌آپ و شروع مجدد" است، این عدد زمان بازیابی شما خواهد بود.

دو جزئیات دیگر در این بخش از مشخصات پنهان است. عبارت "1 Gbit/s shared" به این معنی است که پورت با سایر کاربران (مهمان‌ها) به اشتراک گذاشته شده است، بنابراین سقف ذکر شده در بالا یک حالت ایده‌آل است نه یک تضمین. همچنین برخی از میزبان‌ها ترافیک را به جای حجم کل، بر اساس صدک 95 (95th percentile) نرخ نمونه‌برداری‌شده محاسبه می‌کنند که باعث می‌شود هزینه یک بار کاری ثابت، بسیار کمتر از یک بار کاری نوسانی باشد.

هر چه طرح می‌گوید، استفاده خود را اندازه‌گیری کنید. ابزار 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 به این معناست که به سیستم‌عامل مهمان (guest) اعلام شده که دستگاه چرخشی (rotational) نیست. این مقدار از سمت هایپروایزر می‌آید، بنابراین آنچه میزبان تبلیغ می‌کند را نشان می‌دهد، نه لزوماً ماهیت رسانه ذخیره‌سازی زیرین را. ستون MODEL معمولاً برای دیسک‌های virtio مانند /dev/vda خالی است و برای دیسک‌های متصل‌شده از طریق SCSI، مقدار عمومی QEMU HARDDISK را نمایش می‌دهد. شما در حال بررسی یک دیسک مجازی هستید، بنابراین برچسب آن هیچ چیزی را اثبات نمی‌کند.

ویژگی قابل بررسی، تأخیر (latency) است و تفاوت اصلی بین NVMe محلی و یک volume متصل به شبکه نهفته است. یک volume شبکه ممکن است نرخ انتقال ترتیبی (sequential throughput) بالایی نشان دهد اما همچنان کند به نظر برسد؛ زیرا throughput با تعداد زیادی درخواست در حال اجرا اندازه‌گیری می‌شود، در حالی که پایگاه داده در هر لحظه منتظر یک عملیات نوشتن کوچک است. برای اندازه‌گیری تأخیر، تست را در عمق صف (queue depth) 1 و برای اندازه‌گیری IOPS (عملیات ورودی/خروجی در ثانیه)، تست را در عمق صف بالاتر انجام دهید.

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.00th را بررسی کنید. این مقدار نشان‌دهنده تأخیر تکمیل برای کندترین یک درصد از درخواست‌های شماست و همان چیزی است که کاربر به عنوان وقفه (stall) احساس می‌کند. به عنوان یک راهنمای کلی، NVMe محلی در عمق صف 1 در بازه صدها میکروثانیه پاسخ می‌دهد، در حالی که یک volume متصل به شبکه در بازه میلی‌ثانیه پاسخگو است. به جای اعتماد به هر عدد منتشرشده، دو اجرای خود را با هم مقایسه کنید و این جفت تست را سه بار در طول روز انجام دهید؛ زیرا دیسکی که با سایر مستأجران (tenants) به اشتراک گذاشته شده، در ساعت 03:00 با ساعت 20:00 رفتار متفاوتی دارد.

ابزار fio ابتدا فایل 1 GB را ایجاد می‌کند، بنابراین فضای کافی روی دیسک باقی بگذارید و به یاد داشته باشید که این تست، سهمیه IOPS اعمال‌شده توسط طرح (plan) شما را مصرف می‌کند. زمانی که فقط به یک عدد سریع نیاز دارید، ioping -c 20 . تأخیر را در یک خط به شما می‌دهد. یک بنچمارک تنها زمانی ارزشمند است که بتوانید آن را تکرار کنید، بنابراین دستورات دقیق و خروجی آن‌ها را به همراه تاریخ ذخیره کنید.

چه مواردی شامل هزینه است و چه مواردی جداگانه محاسبه می‌شود

  • IPv4. معمولاً یک آدرس گنجانده شده است. برخی از طرح‌های ارزان، یک آدرس اشتراکی پشت NAT (ترجمه آدرس شبکه) با تعداد محدودی پورت فوروارد شده به شما می‌دهند که به این معنی است که نمی‌توانید هیچ سرویسی را روی پورت 443 خود اجرا کنید. با استفاده از ip -4 addr show scope global و curl -4 https://icanhazip.com بررسی کنید. دو پاسخ متفاوت به این معنی است که شما پشت NAT هستید.
  • IPv6. یک زیرشبکه /64 مسیریابی‌شده، آدرس‌هایی را برای کانتینرها و هر چیزی که می‌خواهید از بیرون در دسترس باشد، در اختیار شما قرار می‌دهد. یک آدرس تکی /128 فقط ترافیک خروجی را پوشش می‌دهد و کاربرد دیگری ندارد.
  • پشتیبان‌گیری (Backups). پشتیبان‌گیری خودکار معمولاً یک افزونه پولی است. اسنپ‌شات‌ها اغلب رایگان هستند، اما اسنپ‌شات روی همان زیرساختی قرار دارد که دیسک اصلی قرار دارد؛ بنابراین شما را در برابر اشتباهات خودتان محافظت می‌کند، نه در برابر از دست رفتن کل میزبان. فارغ از اینکه طرح شما شامل چه مواردی است، همیشه یک نسخه پشتیبان خارج از سرور نگهداری کنید.
  • مدیریت DDoS. بسیاری از میزبان‌ها در برابر حملات حجمی (Distributed Denial of Service)، با Null Route کردن آدرس IP شما برای یک دوره زمانی مشخص پاسخ می‌دهند. سرور سالم می‌ماند، اما به سادگی از اینترنت غیرقابل دسترس می‌شود. درباره آستانه فعال‌سازی و مدت زمان Null Route سوال کنید.
  • محدوده پشتیبانی. در یک طرح مدیریت‌نشده (unmanaged)، شما مدیر سیستم هستید و مسئولیت میزبان تنها تا سطح هایپروایزر و شبکه است. این بزرگترین تفاوت هزینه واقعی بین دو طرح با مشخصات فنی یکسان است.
  • مجوزها و پنل‌ها. یک پنل کنترل، یک سیستم‌عامل تجاری یا یک افزونه ایمیل می‌تواند هزینه ماهانه‌اش از خود سرور بیشتر باشد.

کدام نوع مجازی‌سازی را خریداری می‌کنید؟

systemd-detect-virt

kvm یا qemu به معنای مجازی‌سازی کامل است: هسته (kernel) اختصاصی خودتان و ماژول‌هایی که انتخاب می‌کنید تا در آن بارگذاری شوند. lxc، lxc-libvirt یا openvz به معنای کانتینری است که از هسته میزبان (host) استفاده می‌کند. none به معنای سرور اختصاصی (bare metal) است.

تفاوت این دو در استفاده از هسته مشترک نمایان می‌شود. sudo modprobe wireguard با شکست مواجه می‌شود و ip link add dev wg0 type wireguard مقدار RTNETLINK answers: Operation not supported را برمی‌گرداند، زیرا یک کانتینر نمی‌تواند ماژول هسته‌ای را بارگذاری کند که میزبان آن را بارگذاری نکرده است. free -h ممکن است در صورت نبود lxcfs، حافظه میزبان را به‌جای حافظه شما گزارش دهد، بنابراین ابزارهای مانیتورینگ شما اعدادی را نشان می‌دهند که مربوط به سرور شما نیستند. Swap اغلب با سایر کانتینرها به اشتراک گذاشته می‌شود و اجرای ماشین‌های مجازی داخل VPS به‌هیچ‌وجه امکان‌پذیر نیست. پلن‌های کانتینری به دلیلی ارزان‌تر هستند و برای یک وب‌سایت استاتیک یا یک اپلیکیشن کوچک، همچنان گزینه مناسبی برای خرید محسوب می‌شوند.

هزینه تمدید چقدر است؟

قیمت تبلیغ‌شده اغلب فقط دوره اول را پوشش می‌دهد. در صفحه سفارش به دنبال عبارت "renews at" و مدت‌زمانی که تخفیف به آن تعلق می‌گیرد، باشید. تخفیفی که یک سال اعتبار دارد با تخفیفی که برای کل طول دوره طرح ثابت می‌ماند، دو محصول متفاوت هستند که پشت یک فاکتور اولیه مشابه پنهان شده‌اند.

شرایط بازگشت وجه را نیز با همان دقت مطالعه کنید. توجه کنید که مهلت بازگشت وجه چقدر است، آیا این زمان از لحظه سفارش شروع می‌شود یا از لحظه آماده‌سازی سرویس، آیا افزودنی‌هایی مانند IP آدرس‌های اضافی قابل استرداد هستند، و آیا پیش‌پرداخت سالانه به‌صورت تناسبی (pro rata) بازگردانده می‌شود یا خیر. سپس یک هفته پیش از تاریخ تمدید، یادآوری در تقویم خود تنظیم کنید، زیرا ارزان‌ترین زمان برای خروج، پیش از صدور فاکتور است.

جابه‌جایی در زمان‌های بعدی نیز رایگان نیست. انتقال چند صد گیگابایت داده، بازسازی پیکربندی، انتظار برای سپری شدن مقادیر TTL در DNS (سامانه نام دامنه) و برای یک میل‌سرور، بازسازی اعتبار IP، مجموعاً یک آخر هفته کامل زمان می‌برد. هنگام ارزیابی یک صرفه‌جویی وسوسه‌انگیز، آن آخر هفته را نیز در محاسبات خود لحاظ کنید. هزینه واقعی یک VPS در طول یک سال رقمی است که باید مقایسه شود، نه هزینه ماه اول.

تست پذیرش سی دقیقه‌ای

پیش از هرگونه مهاجرت و در حالی که هنوز مهلت بازگشت وجه باقی است، این تست‌ها را روی سرور جدید اجرا کنید. ابتدا امنیت آن را تأمین کنید: ده دقیقه اول روی یک VPS جدید شامل ایجاد حساب کاربری، تنظیم کلیدها و پیکربندی فایروال است. سپس ابزارهای لازم را نصب کنید.

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 و مقدار حافظه RAM را مشاهده کنید که با آنچه خریداری کرده‌اید، تنها چند درصد اختلاف داشته باشد. اگر free -h مقدار RAM بسیار بیشتری از پلن خریداری‌شده نشان می‌دهد، احتمالاً با یک کانتینر بدون lxcfs روبرو هستید، نه یک امتیاز اضافی. اگر یک آدرس عمومی از curl در خروجی ip -4 addr دیده نمی‌شود، به این معناست که آدرس IPv4 شما اشتراکی است.

بررسی 2: سرعت یک ترد چقدر است و میزان steal تحت بار چقدر است؟

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

خروجی خط events per second را یادداشت کنید. سرعت تک‌تِرد تعیین‌کننده سرعت رندر صفحات و زمان بیلد (build) است و این همان فاکتوری است که پلن‌های ارزان‌قیمت بیشترین تفاوت را در آن دارند. حالا تمام vCPUها را تحت بار قرار دهید و ببینید زمان‌بند (scheduler) واقعاً چه منابعی در اختیار شما می‌گذارد.

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

دستور --cpu 0 به ازای هر CPU آنلاین، یک worker اجرا می‌کند. ستون st را در vmstat و مقدار %steal را در mpstat زیر نظر بگیرید. مقادیر تک‌رقمیِ گاه‌به‌گاه در پلن‌های اشتراکی عادی است. اگر مقدار Steal برای چند دقیقه در ارقام دورقمی باقی بماند، یعنی هسته‌های فیزیکی بیش از حد رزرو شده‌اند (oversubscribed) و پردازش‌های شما در صف انتظارِ مستأجر دیگری قرار دارد. دستور sysbench را دوباره در حین بارگذاری اجرا کنید: اگر امتیاز تک‌تِرد به‌شدت افت کرد، یعنی vCPUهای شما با یکدیگر در رقابت هستند؛ این معمولاً به این معناست که آن‌ها ترد‌های خواهر (sibling threads) روی یک هسته هستند، نه هسته‌های مجزا. حالت دیگر، امتیاز پایین با Steal نزدیک به صفر است که نشان‌دهنده اعمال محدودیت CPU توسط میزبان است؛ محدودیتی که از داخل سیستم‌عامل مهمان مستقیماً قابل مشاهده نیست.

بررسی 3: رفتار دیسک در عمق صف 1 چگونه است؟

دو دستور fio را از بخش NVMe اجرا کنید و هر دو نتیجه را نگه دارید: تأخیر در صدک 99 (99th percentile) در عمق صف 1 و میزان IOPS در عمق 32. سپس عملیات نوشتن (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

عدد مربوط به خواندن ترتیبی (sequential) در dd، عددی است که در تبلیغات ذکر می‌شود اما کم‌کاربردترین داده‌ای است که می‌توانید جمع‌آوری کنید؛ زیرا استریم ترتیبی، کاری نیست که یک دیتابیس یا یک وب‌اپلیکیشن پرمشغله در طول روز انجام می‌دهد. اگر برای مقایسه نیاز دارید آن را جمع‌آوری کنید، اما تصمیم نهایی را بر اساس تأخیر (latency) بگیرید.

بررسی 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 باید در فایروال باز باشد؛ پس از اتمام، آن را ببندید، فایل را حذف کنید و سرور Python را با Ctrl+C متوقف کنید. در خروجی mtr، ستون loss را در خط آخر بخوانید. وجود loss در گره‌های میانی (intermediate hop) در حالی که در مقصد loss ندارید، عادی است؛ زیرا روترها به پاسخ‌های ICMP (پروتکل پیام کنترل اینترنت) که mtr بر اساس آن‌ها محاسبه می‌شود، اولویت پایینی می‌دهند و این به معنای افت در ترافیک شما نیست. اما loss در خط آخر واقعی است.

تست شبکه را در ساعات اوج مصرف کاربران خود تکرار کنید. یک نمونه‌گیری در ساعت 02:00 فقط وضعیت شبکه در زمان خلوتی را به شما نشان می‌دهد.

هر چهار نتیجه را در فایلی با ذکر تاریخ ذخیره کنید و یک ماه بعد دوباره آن‌ها را اجرا کنید. پلنی که در روز اول خوب بوده و در هفته ششم کند شده، پلنی است که میزبان آن بیش از حد پر شده است. داشتن اعداد روز اول، تفاوت بین «دانستن» و «حدس زدن» است.

چه زمانی استفاده از یک VPS ارزان انتخاب درستی است

قیمت پایین، امکانات واقعی را خریداری می‌کند و هزینه‌های واقعی نیز در بر دارد. پردازنده‌های قدیمی‌تر، نسبت oversell بالاتر، حافظه تحت شبکه کندتر، پشتیبانی سلف‌سرویس و افزونگی (redundancy) ضعیف‌تر، عواملی هستند که باعث کاهش قیمت می‌شوند. این ویژگی‌ها را با نوع کاربری خود تطبیق دهید.

استفاده از گزینه ارزان برای یک محیط توسعه، CI runner، نقطه پایانی VPN، گره مانیتورینگ، مقصد پشتیبان‌گیری یا یک وب‌سایت استاتیک مناسب است. همه این موارد می‌توانند یک دقیقه کندی را تحمل کنند. اما انتخاب گزینه ارزان در مواردی که تأخیر (latency) فاکتور اصلی محصول است، معامله بدی محسوب می‌شود؛ مواردی مانند صفحه پرداخت، API تعاملی، سرور بازی یا دیتابیسی که سرویس دیگری منتظر پاسخ آن است. تست بالا به شما می‌گوید که چه چیزی خریداری کرده‌اید و این کار را در زمانی انجام می‌دهد که پاسخ هنوز هزینه‌ای برای شما ندارد.

FAQ

منظور از vCPU در پیشنهادهای ارزان VPS چیست؟

یک vCPU در واقع یک پردازنده مجازی است که به سیستم‌عامل مهمان (guest) ارائه می‌شود و در زمان نیاز، به یکی از ترد‌هایی که زمان‌بند (scheduler) میزبان روی هسته‌های فیزیکی اجرا می‌کند، نگاشت می‌شود. این در واقع مجوزی برای درخواست زمان CPU است و نه سخت‌افزار رزرو شده، مگر آنکه در مشخصات سرویس عبارت "dedicated core" یا "dedicated vCPU" ذکر شده باشد. میزبان‌ها تعداد vCPU بیشتری نسبت به هسته‌های فیزیکی خود می‌فروشند و این نسبت به‌ندرت اعلام می‌شود، بنابراین خودتان آن را اندازه‌گیری کنید. دستور stress-ng --cpu 0 --timeout 300s را اجرا کنید و ستون st را در vmstat 1 زیر نظر بگیرید. اگر مقدار steal دو رقمی باشد، یعنی شما منتظر هسته‌هایی هستید که توسط سایر مهمان‌ها در حال استفاده است.

آیا "پهنای باند نامحدود" واقعاً به معنای نامحدود است؟

خیر، و محدودیت معمولاً در دو جای خارج از توضیحات طرح قرار دارد. سیاست استفاده منصفانه (acceptable use policy) یک حد مجاز را با کلمات تعیین می‌کند و سرعت پورت (port speed) یک سقف سخت‌افزاری بر حسب بایت ایجاد می‌کند. یک پورت 100 Mbit/s حتی با حداکثر سرعت هم نمی‌تواند بیش از حدود 32 ترابایت در 30 روز انتقال دهد؛ بنابراین سرعت پورت را بپرسید و سیاست استفاده را برای یافتن عبارات "fair use" و "sustained" مطالعه کنید. سپس میزان ترافیک ارسالی واقعی خود را با vnstat -m ردیابی کرده و با سقف مجاز مقایسه کنید.

چگونه بفهمم که VPS من واقعاً از NVMe استفاده می‌کند؟

شما نمی‌توانید رسانه فیزیکی را از داخل سیستم‌عامل مهمان تأیید کنید، زیرا lsblk فقط چیزی را گزارش می‌دهد که هایپروایزر اعلام می‌کند: ROTA برابر با 0 و یک رشته مدل خالی یا عمومی. آنچه می‌توانید اندازه‌گیری کنید، رفتار دیسک است. ابزار fio را با --direct=1 در --iodepth=1 اجرا کنید و تأخیر تکمیل (completion latency) در صدک 99.00 را بخوانید. NVMe محلی در حد صدها میکروثانیه پاسخ می‌دهد، در حالی که یک volume متصل به شبکه حتی زمانی که توان عملیاتی ترتیبی (sequential throughput) آن چشمگیر به نظر می‌رسد، در حد میلی‌ثانیه پاسخ می‌دهد. این تست را چند بار در طول روز تکرار کنید، چرا که عملکرد یک دیسک اشتراکی در ساعت 03:00 با ساعت 20:00 متفاوت است.

پیش از پایان مهلت بازگشت وجه، چه مواردی را باید تست کنم؟

چهار مورد را به همین ترتیب تست کنید: مشخصات واقعی سرور از طریق systemd-detect-virt، lscpu و free -h. سرعت تک‌هسته‌ای (Single thread) با sysbench cpu --cpu-max-prime=20000 --threads=1 run. زمان steal تحت بار کامل با stress-ng --cpu 0 که توسط vmstat 1 پایش می‌شود. تأخیر دیسک با استفاده از fio در عمق صف (queue depth) 1. سپس شبکه را از ماشینی نزدیک به کاربران خود با mtr و دانلود فایلی که از روی سرور میزبانی می‌کنید، بسنجید. سی دقیقه برای انجام تمام این موارد کافی است و انجام آن پیش از هرگونه مهاجرت داده، به شما این امکان را می‌دهد که از مهلت بازگشت وجه به عنوان اهرم فشار استفاده کنید.