آموزش سرور

تست سرعت و کیفیت سرور؛ ping، mtr، iperf3، fio و YABS

تهیه: کلودیفای (نگارش با کمک هوش مصنوعی) · انتشار: · زمان مطالعه: ۴ دقیقه

RAMCPUpingmtriperf3آموزش سرورتست سرعت و کیفیتسرور؛ ping، mtr، iperf3،fio و YABSمجلهٔ کلودیفایclodify.net/blog
پاسخ کوتاه

برای سنجش کیفیت یک سرور سه چیز را جدا تست کنید: شبکه (پینگ و Packet Loss با mtr از سمت کاربر، پهنای باند با iperf3)، دیسک (fio برای خواندن/نوشتن تصادفی) و پردازنده (sysbench یا اسکریپت YABS). تست را چند بار و در ساعات مختلف تکرار کنید؛ یک عدد تکی معیار خوبی نیست. با صورتحساب ساعتی می‌توانید پیش از تصمیم نهایی، سرور را چند ساعت تست و در صورت نارضایتی حذف کنید.

چرا خودتان تست کنید؟

اعدادی که در تبلیغات دیده می‌شوند (مثل «پورت ۱۰ گیگ» یا «دیسک NVMe») حداکثر توان را نشان می‌دهند، نه تجربهٔ واقعی شما را. کیفیت مسیر شبکه از اپراتور شما تا سرور، سهم واقعی پردازنده در ساعات شلوغ و سرعت دیسک در بار تصادفی فقط با تست مشخص می‌شود. نکتهٔ مهم: از جایی تست کنید که کاربران شما هستند؛ پینگ سرور از دفتر شما در تهران با پینگ کاربرانتان در شهر دیگر یا اپراتور دیگر ممکن است فرق کند.

۱. پینگ و Packet Loss

ping

ping -c 50 203.0.113.10        # لینوکس و مک
ping -n 50 203.0.113.10        # ویندوز

در خروجی به سه عدد توجه کنید: میانگین زمان (avg)، نوسان (mdev یا اختلاف min/max) و درصد packet loss. برای اغلب کاربردها، ثبات (نوسان کم و loss صفر) مهم‌تر از کمترین عدد ممکن است.

mtr: پینگ + مسیر

mtr نشان می‌دهد بسته‌ها از چه مسیری می‌روند و در کدام گام تأخیر یا loss ایجاد می‌شود:

sudo apt install -y mtr-tiny          # Ubuntu/Debian
mtr -rwzc 100 203.0.113.10

در ویندوز ابزار WinMTR همین کار را انجام می‌دهد. نحوهٔ تفسیر خروجی mtr و تشخیص اینکه مشکل از کجاست را در پینگ بالا و Packet Loss توضیح داده‌ایم.

۲. پهنای باند شبکه

iperf3 بین دو سرور

دقیق‌ترین روش، تست بین دو سرور است که هر دو را در اختیار دارید:

# روی سرور مقصد
sudo apt install -y iperf3 && iperf3 -s

# روی سرور مبدأ (۴ اتصال موازی، ۲۰ ثانیه، و جهت معکوس با -R)
iperf3 -c 203.0.113.10 -P 4 -t 20
iperf3 -c 203.0.113.10 -P 4 -t 20 -R

پورت ۵۲۰۱ باید در فایروال سرور مقصد باز باشد. پس از تست، iperf3 را متوقف و پورت را ببندید.

speedtest

برای سنجش سرعت تا سرورهای عمومی می‌توانید از ابزار speedtest (نسخهٔ رسمی Ookla یا speedtest-cli) استفاده کنید. نتیجه به سرور تست انتخاب‌شده بستگی دارد و فقط یک تصویر کلی می‌دهد.

تفسیر

  • سرعت پورت (مثلاً ۲۵ گیگ برای سرور ایران کلودیفای) سقف ظرفیت کارت شبکه است؛ سرعت واقعی به مسیر و طرف مقابل هم بستگی دارد.
  • تفاوت دانلود و آپلود و نتیجهٔ چند اتصال موازی را در نظر بگیرید.
  • تفاوت پهنای باند و ترافیک را در پهنای باند و ترافیک چه فرقی دارند؟ بخوانید.

۳. سرعت دیسک با fio

برای دیتابیس و سایت‌های پویا، سرعت خواندن/نوشتن تصادفی (IOPS) مهم‌تر از سرعت ترتیبی است:

sudo apt install -y fio
# نوشتن/خواندن تصادفی ۴ کیلوبایتی — شبیه بار دیتابیس
fio --name=rand --filename=/root/fio.test --size=1G --bs=4k --rw=randrw --rwmixread=70 \
    --ioengine=libaio --iodepth=32 --direct=1 --runtime=30 --time_based --group_reporting
rm -f /root/fio.test

در خروجی، IOPS و bandwidth بخش read و write را ببینید. دستور dd را برای تست دیسک به کار نبرید؛ نتیجهٔ آن تحت تأثیر کش است و تصویر واقعی نمی‌دهد.

root@server: ~
$ fio --name=rand --rw=randread --bs=4k --size=1G --runtime=30 --direct=1  read: IOPS=..., BW=...$ 
شکل ۱ fio سرعت خواندن تصادفی ۴ کیلوبایتی را می‌سنجد؛ مهم‌ترین عدد برای دیتابیس‌ها.

۴. پردازنده با sysbench

sudo apt install -y sysbench
sysbench cpu --threads=1 run          # کارایی تک‌هسته
sysbench cpu --threads=$(nproc) run    # همهٔ هسته‌ها

عدد events per second را بین سرورها مقایسه کنید. هم‌زمان در top ستون st (steal) را ببینید؛ steal بالا یعنی ماشین‌های دیگر روی همان میزبان سهم پردازنده را می‌گیرند.

۵. همه با هم: YABS

اسکریپت متن‌باز YABS (Yet Another Bench Script) در یک اجرا fio، iperf3 به چند سرور عمومی و Geekbench را اجرا می‌کند:

curl -sL yabs.sh | bash

نکته‌ها: اجرای کامل چند دقیقه طول می‌کشد و حجمی ترافیک مصرف می‌کند؛ پیش از اجرای هر اسکریپت از اینترنت، محتوای آن را بررسی کنید. روی سرور ایران ممکن است دسترسی به برخی سرورهای تست یا دانلودها محدود باشد.

جدول جمع‌بندی

چه چیزی ابزار مهم برای
تأخیر و ثبات اتصال ping، mtr همهٔ سرویس‌های تعاملی، بازی، ربات
ظرفیت انتقال داده iperf3، speedtest دانلود فایل، استریم، بکاپ
سرعت دیسک fio دیتابیس، وردپرس، داکر
قدرت پردازنده sysbench، Geekbench build، فشرده‌سازی، پردازش
همه YABS مقایسهٔ کلی سرورها
شبکهping، mtr و iperf3
دیسکfio برای IOPS و سرعت ترتیبی
پردازندهsysbench یا Geekbench
همه با همYABS
شکل ۲ هر بخش سرور ابزار تست مخصوص خودش را دارد.

یک روش تست منصفانه

  1. سرور را با همان سیستم‌عامل و تنظیمات پیش‌فرض بسازید.
  2. هر تست را حداقل سه بار و در دو زمان متفاوت (مثلاً صبح و شب) اجرا کنید.
  3. شبکه را از محل کاربران تست کنید، نه فقط از خود سرور.
  4. نتایج را با تاریخ ثبت کنید تا بعداً قابل مقایسه باشد.
  5. با صورتحساب ساعتی کلودیفای، اگر سرور در ۱۵ دقیقهٔ اول مناسب نبود، حذفش کنید تا هزینه‌ای نپردازید؛ برای تست طولانی‌تر هم فقط ساعت‌های استفاده را می‌پردازید.

سؤالات متداول

کم‌پینگ‌ترین کشور برای ایران کدام است؟

عدد ثابتی وجود ندارد؛ به اپراتور، شهر و زمان بستگی دارد و در زمان اختلال‌ها تغییر می‌کند. بهترین راه، تست چند لوکیشن از شبکهٔ خودتان است.

چرا نتیجهٔ speedtest هر بار فرق می‌کند؟

به سرور تست، ترافیک لحظه‌ای مسیر و بار سرور مقصد بستگی دارد. میانگین چند تست را ملاک قرار دهید.

اجرای تست روی سرور ترافیک مصرف می‌کند؟

بله؛ به‌خصوص iperf3 و YABS. در سرورهایی که ترافیک دانلود جداگانه حساب می‌شود، این را در نظر بگیرید.

steal چند درصد نگران‌کننده است؟

چند درصد گذرا طبیعی است؛ اگر به‌طور پایدار بالای ۱۰ درصد باشد و کارایی را کم کند، با پشتیبانی در میان بگذارید یا سرور را در لوکیشن یا پلن دیگری بسازید.

آماده‌اید؟ سرورتان را بسازید.

از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی

سرورتان را همین حالا بسازید.

ساعتی بپردازید. هر وقت خواستید حذف کنید.