امتیاز 2500 در Geekbench 6 عدد مبنا است، نه نمره قبولی؛ و همین نکته بیشتر خطاهای بنچمارک سرور مجازی را توضیح می‌دهد. ابزار YABS در یک دستور، پردازنده و دیسک و شبکه را می‌سنجد و fio دیسک را دقیق‌تر زیر فشار می‌برد. اما تصمیم شما به سه عدد وابسته است: امتیاز تک‌هسته، تعداد عملیات تصادفی دیسک و تأخیر صدک ۹۹.

لایهابزار سنجشعددی که یادداشت می‌کنید
پردازندهآزمون Geekbench 6 داخل YABSامتیاز تک‌هسته و امتیاز چندهسته
دیسکابزار fio با بلوک 4k و 1mتعداد عملیات در ثانیه و تأخیر صدک ۹۹
شبکهآزمون iperf3 داخل YABSپهنای باند دانلود و آپلود
اعتبار خود تستفرمان vmstat یا top روی همان سروردرصد steal در لحظه اجرای تست

💡 عدد بنچمارک یک عکس لحظه‌ای است، نه گارانتی

تست عملکرد یعنی اجرای یک بار کاری استاندارد و ثبت عددی که با سرور دیگر قابل مقایسه باشد؛ پس هر عدد به اندازه شرایط لحظه اجرایش معتبر است.
✅ هر تست را سه بار و در ساعت‌های مختلف اجرا کنید و درصد steal را کنار عدد بنویسید.
✅ در وب‌داده امکان تست ساعتی رایگان سرور وجود دارد، یعنی همین دستورها را پیش از تصمیم نهایی روی سرور واقعی اجرا می‌کنید.

ترتیب بخش‌های این راهنما همان ترتیب تصمیم‌گیری است. اول روشن می‌کنیم هر ابزار چه چیزی را می‌سنجد و چه چیزی را نه. بعد YABS را اجرا و امتیاز Geekbench را می‌خوانیم، سپس با fio سراغ دیسک می‌رویم. آخر سر یک جدول تصمیم و یک برگه ثبت نتیجه می‌سازیم.

خروجی تست عملکرد سرور لینوکسی روی ترمینال با امتیاز پردازنده و عددهای دیسک، بنچمارک سرور مجازی

بنچمارک سرور مجازی چه چیزی را اندازه می‌گیرد و چه چیزی را نه؟

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

سه معیاری که نباید با هم جمع شوند

بدترین کار این است که چند عدد با واحدهای متفاوت را جمع کنید و یک «امتیاز کل» بسازید. امتیاز پردازنده و تعداد عملیات دیسک دو واحد متفاوت دارند و گلوگاه هر بار کاری فقط یکی از آن‌هاست:

  • پردازنده: سرعت یک هسته برای کارهای پشت سر هم مثل اجرای PHP، و جمع هسته‌ها برای کارهای موازی مثل کامپایل.
  • دیسک: تعداد عملیات کوچک تصادفی و تأخیر هر عملیات؛ این دو سرنوشت دیتابیس را تعیین می‌کنند.
  • شبکه: پهنای باند ورودی و خروجی؛ برای سرور ایرانی، مقصد تست مهم‌تر از خود عدد است.
  • حافظه: ابزار YABS تست مستقل حافظه ندارد و اثر حافظه در امتیاز Geekbench دیده می‌شود؛ سنجش جدای آن ابزار دیگری می‌خواهد.

اگر دنبال دیسک سریع برای دیتابیس هستید، مشخصات پلن‌های سرور مجازی ایران nvme را ببینید تا بدانید عدد روی چه سخت‌افزاری به دست آمده است.

درصد steal؛ عددی که اعتبار بقیه عددها را تعیین می‌کند

روی سرور مجازی، پردازنده فیزیکی بین چند ماشین مهمان تقسیم می‌شود. سیستم‌عامل شما ممکن است آماده اجرا باشد و پردازنده مشغول ماشین دیگری؛ این زمان با نام steal ثبت می‌شود. در صفحه راهنمای proc_stat در man7، فیلد هشتم خط cpu در فایل /proc/stat همان «زمان صرف‌شده در سیستم‌عامل‌های دیگر هنگام اجرا در محیط مجازی‌سازی» است و از لینوکس 2.6.11 اضافه شده است.

شبیه صف یک باجه است: نوبت شما رسیده و باجه هنوز مشغول مشتری قبلی است. تست پردازنده عدد پایین‌تری می‌دهد و تقصیر سخت‌افزار نیست. در صفحه راهنمای vmstat در man7، ستون st همان «زمان دزدیده‌شده از ماشین مجازی» و ستون wa «زمان انتظار برای ورودی و خروجی» است. پیش و پس از هر تست این دو ستون را ثبت کنید:

vmstat 1 5
# ستون st در خروجی = درصد steal

top -bn1 | head -n 3
# در خط %Cpu(s) عدد بعد از st را بخوانید

🔸 درصد steal را چطور تفسیر کنیم

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

سنجش شبکه با این ابزارها کامل نمی‌شود؛ راهنمای آموزش تست سرعت در سرور مجازی ایران همان بخش را جداگانه پوشش می‌دهد.

اجرای YABS و خواندن امتیاز Geekbench

ابزار YABS یک اسکریپت bash است که fio و iperf3 و Geekbench را پشت سر هم اجرا می‌کند و خروجی یکدست می‌سازد. بر اساس مخزن رسمی، نه به دسترسی ویژه نیاز دارد و نه به نصب پیش‌نیاز؛ اگر fio یا iperf3 نصب باشد، نسخه محلی ترجیح داده می‌شود.

اجرای پایه یک خط است. خروجی را در فایل نگه دارید:

curl -sL yabs.sh | bash | tee yabs-$(date +%F-%H%M).txt

# اجرای بدون تست شبکه و با ذخیره خروجی JSON در فایل
curl -sL yabs.sh | bash -s -- -i -w yabs.json

# فلگ ترکیبی: خاموش‌کردن همزمان تست دیسک و پردازنده
curl -sL yabs.sh | bash -s -- -fg

فلگ‌هایی که در عمل به کار می‌آیند

طبق توضیح مخزن yet-another-bench-script در گیت‌هاب، فلگ‌های تک‌حرفی را می‌توان کنار هم نوشت. مهم‌ترین‌ها:

هدففلگچه زمانی لازم می‌شود
غیرفعال‌کردن تست دیسکفلگ -f یا -dوقتی دیسک درگیر بار واقعی است
غیرفعال‌کردن تست شبکهفلگ -iوقتی ترافیک محدود است یا مقصدها بی‌ربط‌اند
غیرفعال‌کردن تست پردازندهفلگ -gبرای اجرای سریع و فقط دیسکی
کم‌کردن مقصدهای شبکهفلگ -rبرای مصرف ترافیک کمتر
انتخاب نسخه Geekbenchفلگ -4 یا -5 یا -7؛ فلگ -9 برای اجرای همزمان ۴ و ۵برای مقایسه با نتیجه قدیمی همان نسخه؛ بازگشت به نسخه ۶ با فلگ -6 که باید آخرین فلگ باشد
چاپ یا ذخیره نتیجه JSONفلگ -j برای چاپ روی صفحه؛ فلگ -w با نام فایل برای ذخیرهبرای مقایسه ماشینی چند سرور
نمایش راهنمافلگ -hبرای دیدن فهرست کامل فلگ‌ها

برای بنچمارک سرور مجازی در ایران، بخش شبکه این ابزار کمترین ارزش را دارد؛ مقصدهای پیش‌فرضش بیرون از ایران است و مستندات مخزن در توضیح فلگ -r به مقصدهایی در لندن و نیویورک اشاره می‌کند. همان مستندات هشدار می‌دهد این تست با هشت نخ موازی اجرا می‌شود و حدود بیست ثانیه برای هر مقصد پورت را پر می‌کند؛ پس روی سرور فعال خاموشش کنید.

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

هر دو را بردارید؛ وزنشان به بار کاری بستگی دارد. در سند رسمی Geekbench 6 Benchmark Internals آمده که امتیاز مبنای 2500 روی یک دستگاه مرجع، یعنی Dell Precision 3460 با پردازنده Core i7-12700، کالیبره شده است. امتیاز تک‌هسته از میانگین هندسی آزمون‌های هر زیرگروه ساخته می‌شود و دو زیرگروه Integer و Floating Point با وزن ۶۵ و ۳۵ درصد ترکیب می‌شوند. امتیاز چندهسته با همان روش روی آزمون‌های چندهسته‌ای حساب می‌شود.

نتیجه عملی ساده است: عدد Geekbench فقط داخل همان نسخه معنا دارد. نسخه ۶ پیش‌فرض است، اما امتیاز نسخه‌های مختلف مبنای مشترک ندارند. پس نسخه را کنار هر عدد بنویسید.

⚠️ دو کاری که روی سرور فعال نکنید

اسکریپت را بی‌آنکه محتوایش را دیده باشید مستقیم به پوسته نفرستید؛ نشانی را در یک فایل بگیرید، بخوانید و بعد اجرا کنید.
روی سروری که بار واقعی دارد تست نگیرید؛ تست دیسک و شبکه هم نتیجه را خراب می‌کند و هم سرویس کاربران را.

اجرای YABS و خواندن امتیاز Geekbench

سنجش دیسک با fio؛ از تعداد عملیات تا تأخیر صدک ۹۹

ابزار fio دیسک را با یک بار کاری تعریف‌شده می‌سنجد و اندازه بلوک، نسبت خواندن به نوشتن، عمق صف و تعداد نخ‌ها را خودتان تعیین می‌کنید. به همین دلیل هر عدد fio را باید همراه پارامترهای همان تست ثبت کنید؛ وگرنه قابل مقایسه نیست.

پارامترهایی که عدد را می‌سازند

تعریف‌های زیر از مستندات رسمی fio برداشته شده و هر کدام می‌تواند عدد نهایی را چند برابر عوض کند. مهم‌ترین دام اینجاست: عمق صف و موتور ورودی و خروجی با هم معنا دارند. اگر iodepth=32 بگذارید و موتور را پیش‌فرض رها کنید، عدد شما همان عمق یک است و دیسک بی‌دلیل کند به نظر می‌رسد.

پارامتردر مستندات چه می‌گویداثر بر نتیجه
گزینه directورودی و خروجی بدون بافر، معمولاً با O_DIRECT؛ پیش‌فرض غیرفعالبدون آن، کش سیستم‌عامل عدد را بی‌دلیل بالا نشان می‌دهد
گزینه bsاندازه بلوک هر عملیات، پیش‌فرض 4096 بایتبلوک کوچک: عملیات تصادفی؛ بلوک بزرگ: پهنای باند
گزینه rwالگوی دسترسی؛ randread و randwrite و randrwدر حالت ترکیبی سهم خواندن با rwmixread تعیین می‌شود (پیش‌فرض ۵۰)
گزینه iodepthتعداد عملیاتی که همزمان روی فایل در جریان است؛ پیش‌فرض ۱ و عمق صف فقط برای موتور ناهمگام مطرح استبدون موتور ناهمگام، بالا بردن آن عدد را عوض نمی‌کند
گزینه ioengineموتور ورودی و خروجی؛ psync با pread و pwrite کار می‌کند و جز ویندوز همه‌جا پیش‌فرض استبرای معنا داشتن عمق صف، موتور ناهمگام مثل libaio را صریح بنویسید
گزینه numjobsتعداد نسخه‌های همان کار، هر یک نخ یا پروسه مستقلبرای دیدن رفتار چند کاربر همزمان
گزینه group_reportingگزارش آماری همه نسخه‌ها یکجابدون آن خروجی چند بلوک جدا می‌شود
گزینه runtimeسقف زمان اجرا؛ با time_based تا پایان آن زمان تکرار می‌شودتست کوتاه، نوسان لحظه‌ای را نشان می‌دهد
گزینه sizeحجم کل ورودی و خروجی هر نخحجم کوچک، نتیجه را غیرواقعی بالا می‌برد

دستور آماده برای دو سناریوی واقعی

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

# سناریو ۱: بار شبیه دیتابیس (بلوک 4k، تصادفی، ۷۰٪ خواندن)
fio --name=db4k --filename=./fiotest --size=4G --bs=4k \
    --rw=randrw --rwmixread=70 --direct=1 --ioengine=libaio \
    --iodepth=32 --numjobs=4 --group_reporting \
    --runtime=60 --time_based

# سناریو ۲: بار شبیه بکاپ (بلوک 1m، ترتیبی)
fio --name=seq1m --filename=./fiotest --size=4G --bs=1m \
    --rw=read --direct=1 --ioengine=libaio --iodepth=8 \
    --numjobs=1 --runtime=60 --time_based

rm -f ./fiotest

⚠️ هدف تست را اشتباه نگیرید

گزینه filename را به یک فایل بدهید، نه به نام دستگاه یا پارتیشن. مستندات fio می‌گوید کار مخرب روی دستگاه یا پارتیشنِ mount‌شده پیش‌فرض متوقف می‌شود؛ پس خطر واقعی سر دستگاه mount‌نشده است.
فایل آزمایشی را بزرگ‌تر از RAM سرور بگیرید و فضای آزاد دیسک را چک کنید.
گزینه unlink در fio پیش‌فرض خاموش است، پس خط آخر همین بلوک فایل آزمایشی را حذف می‌کند.

سه عددی که از خروجی برمی‌دارید

در بنچمارک سرور مجازی، بلوک 4k را نماینده بار دیتابیس و بلوک 1m را نماینده بکاپ می‌گیریم؛ قاعده‌ای تجربی، نه استاندارد. از هر اجرا سه گروه عدد را بردارید:

  1. تعداد عملیات در ثانیه در بلوک 4k: ظرفیت دیسک برای کار کوچک و پراکنده.
  2. تأخیر تکمیل عملیات و مشخصاً صدک ۹۹ آن: بدترین تجربه‌ای که کاربر دارد، نه میانگینی که آن را پنهان می‌کند.
  3. پهنای باند در بلوک 1m: سرعت واقعی کپی و بازگردانی بکاپ.

میانگین تأخیر تقریباً همیشه خوب به نظر می‌رسد. صدک ۹۹ نشان می‌دهد یک درخواست از هر صد درخواست چقدر معطل مانده؛ روی دیتابیس همین یک درصد به شکل کندی گاه‌به‌گاه دیده می‌شود. آستانه استانداردی برای این عدد نیست، پس آن را میان دو گزینه خودتان و میان اجراهای مختلف یک سرور مقایسه کنید.

سنجش دیسک با fio؛ از تعداد عملیات تا تأخیر صدک ۹۹

کدام عدد برای سایت، دیتابیس و بار سنگین تعیین‌کننده است؟

برای سایت و وردپرس امتیاز تک‌هسته تعیین‌کننده است؛ برای دیتابیس تأخیر صدک ۹۹ دیسک؛ برای کارهای موازی مثل کامپایل امتیاز چندهسته؛ و برای بکاپ و فایل سرور پهنای باند بلوک بزرگ. در بنچمارک سرور مجازی بقیه عددها نقش پشتیبان دارند. این نگاشت جمع‌بندی تجربی ما است و در مستند رسمی به این شکل جدول نشده؛ پس نقطه شروع تصمیم است.

جدول تصمیم بر اساس نوع بار

نوع بارعدد تعیین‌کنندهعدد دست‌دومعددی که گمراه می‌کند
سایت و وردپرسامتیاز تک‌هسته Geekbenchتأخیر دیسک در بلوک 4kامتیاز چندهسته با هسته‌های زیاد و کم‌توان
دیتابیس MySQL و PostgreSQLتأخیر صدک ۹۹ در بلوک 4kتعداد عملیات در ثانیهپهنای باند بلوک 1m
کامپایل و پردازش دسته‌ایامتیاز چندهسته Geekbenchپهنای باند دیسکتأخیر تک‌عملیات
بکاپ و فایل سرورپهنای باند در بلوک 1mپهنای باند شبکه داخلیعملیات تصادفی 4k

چهار اشتباه رایج در مقایسه دو سرور

  1. مقایسه خروجی دو نسخه مختلف Geekbench: مبنای امتیاز در هر نسخه جداست.
  2. اجرای تست دیسک بدون گزینه direct: کش سیستم‌عامل عدد را چند برابر نشان می‌دهد و سرور ضعیف‌تر برنده می‌شود.
  3. تکیه بر یک اجرا: بدون تکرار و بدون ثبت درصد steal، وضعیت یک دقیقه را به کل ماه تعمیم می‌دهید.
  4. مقایسه عدد خودتان با عدد منتشرشده دیگران: نسخه ابزار، حجم فایل، عمق صف و فایل‌سیستم متفاوت است.

برگه ثبت نتیجه؛ روشی که مقایسه را تکرارپذیر می‌کند

یک جدول ساده بسازید و برای هر سرور همین ترتیب را اجرا کنید؛ همین کار مقایسه را از بحث سلیقه‌ای بیرون می‌آورد:

  1. سیستم‌عامل را تازه نصب کنید و سرویس اضافه‌ای بالا نیاورید؛ نسخه توزیع و کرنل را یادداشت کنید. اگر سرور فعال است، تست را روی سرور جداگانه بگیرید.
  2. درصد steal را پیش از شروع ثبت کنید؛ اگر بالا بود، تست را به زمان دیگری ببرید.
  3. دستور YABS را با غیرفعال‌کردن تست شبکه اجرا و خروجی را ذخیره کنید.
  4. دو سناریوی fio را با پارامترهای ثابت اجرا و سه عدد کلیدی را بنویسید.
  5. چرخه را سه بار تکرار کنید: ساعت اوج کاری، شب و آخر هفته؛ کمترین و بیشترین مقدار هر عدد را ثبت کنید.
  6. در پایان فقط عدد تعیین‌کننده بار کاری خودتان را با سرور دوم مقایسه کنید.

🔶 اجرای تست روی سرور مجازی ایران وب‌داده

سرور مجازی ایران وب‌داده در دیتاسنتر تهران و روی شبکه رسپینا میزبانی می‌شود و پنل اختصاصی آن نصب مجدد سیستم‌عامل، اسنپ‌شات و بازگردانی را بدون تیکت در اختیار شما می‌گذارد.
یعنی پیش از تست اسنپ‌شات می‌گیرید، سرور را تازه نصب می‌کنید، تست را روی سیستم تمیز اجرا می‌کنید و بعد برمی‌گردید.

راهنمای سرور مجازی ساعتی رایگان هم شرح می‌دهد تست ساعتی چطور درخواست می‌شود.

پرسش‌هایی که کاربران پیش از انتخاب سرور بیشتر می‌پرسند

آیا اجرای YABS به سرور آسیب می‌زند؟

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

عدد مطلق خوب وجود ندارد. امتیاز 2500 در نسخه ۶ فقط مبنای کالیبراسیون روی یک دستگاه مرجع است، نه حد قبولی. معیار درست، مقایسه دو گزینه‌ای است که روی میز شماست، با یک نسخه ثابت از ابزار.

چون سهم پردازنده و دیسک بین چند ماشین تقسیم می‌شود و بار همسایه‌ها ثابت نیست. نوسان چنددرصدی طبیعی است؛ اختلاف بزرگ نشانه فشار روی میزبان است و با ثبت درصد steal دیده می‌شود.

همین عددها را روی همان سخت‌افزاری نشان می‌دهد که قرار است سرویس بگیرید، به‌جای عددهایی که دیگران منتشر کرده‌اند. تأخیر دیسک و امتیاز تک‌هسته را در فرصت کوتاه تست هم می‌توان اندازه گرفت.

امتیاز تک‌هسته و تأخیر دیسک در بلوک کوچک. بار تعاملی به یک رشته اجرایی سریع نیاز دارد و از هسته زیاد بهره کمی می‌برد. بخش شبکه این تصمیم با ابزارهای این مقاله پوشش داده نمی‌شود.

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

اگر در بار واقعی ستون wa در خروجی vmstat بالا باشد، گلوگاه دیسک است. اگر مصرف پردازنده نزدیک سقف و ستون wa پایین باشد، گلوگاه محاسباتی است. درصد steal بالا یعنی مشکل سمت میزبان است.

جمع‌بندی؛ بنچمارک سرور مجازی یعنی سه عدد، نه یک صفحه عدد
خروجی YABS و fio ده‌ها رقم تولید می‌کند و همین فراوانی تصمیم را سخت‌تر می‌کند. راه بیرون آمدن، کوچک کردن دامنه است: بار کاری خودتان را نام ببرید، عدد تعیین‌کننده همان بار را بردارید و بقیه را پشتیبان نگه دارید. برای وردپرس امتیاز تک‌هسته، برای دیتابیس تأخیر صدک ۹۹ در بلوک 4k، برای کارهای موازی امتیاز چندهسته و برای بکاپ پهنای باند بلوک بزرگ. سه قاعده هم اعتبار کار را نگه می‌دارد: ورودی و خروجی بدون بافر را فعال کنید، فایل آزمایشی را از RAM سرور بزرگ‌تر بگیرید و درصد steal را کنار هر عدد ثبت کنید. تست را سه بار در ساعت‌های مختلف تکرار کنید و کمترین مقدار را مبنای تصمیم بگذارید، نه بهترین مقدار را؛ چون کاربر شما همان بدترین لحظه را تجربه می‌کند. با این روش، مقایسه دو سرور به یک جدول قابل بازتولید تبدیل می‌شود.

🚀 سرور را با عدد خودتان انتخاب کنید

پلن‌های سرور مجازی ایران وب‌داده با تحویل خودکار بعد از پرداخت و پنل اختصاصی برای نصب مجدد و اسنپ‌شات در اختیار شماست؛ همین چرخه را روی سرور واقعی اجرا کنید و بعد تصمیم بگیرید.

اگر سوالی داشتید، در بخش نظرات با ما در ارتباط باشید.

منابع

وب داده
وب داده

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

مقاله‌ها: 234
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *