
به اشتراک بگذارید

به اشتراک بگذارید
امتیاز 2500 در Geekbench 6 عدد مبنا است، نه نمره قبولی؛ و همین نکته بیشتر خطاهای بنچمارک سرور مجازی را توضیح میدهد. ابزار YABS در یک دستور، پردازنده و دیسک و شبکه را میسنجد و fio دیسک را دقیقتر زیر فشار میبرد. اما تصمیم شما به سه عدد وابسته است: امتیاز تکهسته، تعداد عملیات تصادفی دیسک و تأخیر صدک ۹۹.
| لایه | ابزار سنجش | عددی که یادداشت میکنید |
|---|---|---|
| پردازنده | آزمون Geekbench 6 داخل YABS | امتیاز تکهسته و امتیاز چندهسته |
| دیسک | ابزار fio با بلوک 4k و 1m | تعداد عملیات در ثانیه و تأخیر صدک ۹۹ |
| شبکه | آزمون iperf3 داخل YABS | پهنای باند دانلود و آپلود |
| اعتبار خود تست | فرمان vmstat یا top روی همان سرور | درصد steal در لحظه اجرای تست |
💡 عدد بنچمارک یک عکس لحظهای است، نه گارانتی
تست عملکرد یعنی اجرای یک بار کاری استاندارد و ثبت عددی که با سرور دیگر قابل مقایسه باشد؛ پس هر عدد به اندازه شرایط لحظه اجرایش معتبر است.
✅ هر تست را سه بار و در ساعتهای مختلف اجرا کنید و درصد steal را کنار عدد بنویسید.
✅ در وبداده امکان تست ساعتی رایگان سرور وجود دارد، یعنی همین دستورها را پیش از تصمیم نهایی روی سرور واقعی اجرا میکنید.
ترتیب بخشهای این راهنما همان ترتیب تصمیمگیری است. اول روشن میکنیم هر ابزار چه چیزی را میسنجد و چه چیزی را نه. بعد YABS را اجرا و امتیاز Geekbench را میخوانیم، سپس با fio سراغ دیسک میرویم. آخر سر یک جدول تصمیم و یک برگه ثبت نتیجه میسازیم.
📌 آنچه در این مقاله میخوانید
◀️ مرز اندازهگیری؛ چه چیزی سنجیده میشود و چه چیزی نه
◀️ اجرای YABS و خواندن امتیاز Geekbench
◀️ سنجش دیسک با fio؛ از تعداد عملیات تا تأخیر صدک ۹۹
◀️ کدام عدد برای سایت، دیتابیس و بار سنگین تعیینکننده است؟

این تستها سه چیز مستقل را میسنجند: توان محاسباتی پردازنده، رفتار دیسک زیر بار تصادفی و پهنای باند شبکه. چیزی که نمیسنجند، پایداری سرور در طول هفته، کیفیت مسیر شبکه تا کاربران واقعی و رفتار نرمافزار خودتان زیر بار همزمان است. عدد خروجی به تصمیم کمک میکند، اما جای تصمیم را نمیگیرد.
بدترین کار این است که چند عدد با واحدهای متفاوت را جمع کنید و یک «امتیاز کل» بسازید. امتیاز پردازنده و تعداد عملیات دیسک دو واحد متفاوت دارند و گلوگاه هر بار کاری فقط یکی از آنهاست:
اگر دنبال دیسک سریع برای دیتابیس هستید، مشخصات پلنهای سرور مجازی ایران nvme را ببینید تا بدانید عدد روی چه سختافزاری به دست آمده است.
روی سرور مجازی، پردازنده فیزیکی بین چند ماشین مهمان تقسیم میشود. سیستمعامل شما ممکن است آماده اجرا باشد و پردازنده مشغول ماشین دیگری؛ این زمان با نام 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 یک اسکریپت 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 فقط داخل همان نسخه معنا دارد. نسخه ۶ پیشفرض است، اما امتیاز نسخههای مختلف مبنای مشترک ندارند. پس نسخه را کنار هر عدد بنویسید.
⚠️ دو کاری که روی سرور فعال نکنید
اسکریپت را بیآنکه محتوایش را دیده باشید مستقیم به پوسته نفرستید؛ نشانی را در یک فایل بگیرید، بخوانید و بعد اجرا کنید.
روی سروری که بار واقعی دارد تست نگیرید؛ تست دیسک و شبکه هم نتیجه را خراب میکند و هم سرویس کاربران را.

ابزار 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 را نماینده بکاپ میگیریم؛ قاعدهای تجربی، نه استاندارد. از هر اجرا سه گروه عدد را بردارید:
میانگین تأخیر تقریباً همیشه خوب به نظر میرسد. صدک ۹۹ نشان میدهد یک درخواست از هر صد درخواست چقدر معطل مانده؛ روی دیتابیس همین یک درصد به شکل کندی گاهبهگاه دیده میشود. آستانه استانداردی برای این عدد نیست، پس آن را میان دو گزینه خودتان و میان اجراهای مختلف یک سرور مقایسه کنید.

برای سایت و وردپرس امتیاز تکهسته تعیینکننده است؛ برای دیتابیس تأخیر صدک ۹۹ دیسک؛ برای کارهای موازی مثل کامپایل امتیاز چندهسته؛ و برای بکاپ و فایل سرور پهنای باند بلوک بزرگ. در بنچمارک سرور مجازی بقیه عددها نقش پشتیبان دارند. این نگاشت جمعبندی تجربی ما است و در مستند رسمی به این شکل جدول نشده؛ پس نقطه شروع تصمیم است.
| نوع بار | عدد تعیینکننده | عدد دستدوم | عددی که گمراه میکند |
|---|---|---|---|
| سایت و وردپرس | امتیاز تکهسته Geekbench | تأخیر دیسک در بلوک 4k | امتیاز چندهسته با هستههای زیاد و کمتوان |
| دیتابیس MySQL و PostgreSQL | تأخیر صدک ۹۹ در بلوک 4k | تعداد عملیات در ثانیه | پهنای باند بلوک 1m |
| کامپایل و پردازش دستهای | امتیاز چندهسته Geekbench | پهنای باند دیسک | تأخیر تکعملیات |
| بکاپ و فایل سرور | پهنای باند در بلوک 1m | پهنای باند شبکه داخلی | عملیات تصادفی 4k |
یک جدول ساده بسازید و برای هر سرور همین ترتیب را اجرا کنید؛ همین کار مقایسه را از بحث سلیقهای بیرون میآورد:
🔶 اجرای تست روی سرور مجازی ایران وبداده
سرور مجازی ایران وبداده در دیتاسنتر تهران و روی شبکه رسپینا میزبانی میشود و پنل اختصاصی آن نصب مجدد سیستمعامل، اسنپشات و بازگردانی را بدون تیکت در اختیار شما میگذارد.
یعنی پیش از تست اسنپشات میگیرید، سرور را تازه نصب میکنید، تست را روی سیستم تمیز اجرا میکنید و بعد برمیگردید.
راهنمای سرور مجازی ساعتی رایگان هم شرح میدهد تست ساعتی چطور درخواست میشود.
پرسشهایی که کاربران پیش از انتخاب سرور بیشتر میپرسند
خود اسکریپت تغییری در سیستمعامل ایجاد نمیکند و به دسترسی ویژه نیاز ندارد، اما تست دیسک و شبکه برای چند دقیقه منابع را اشباع میکند. روی سروری که بار واقعی دارد، سرویس کاربران کند میشود؛ پس تست را روی سیستم تمیز بگیرید.
عدد مطلق خوب وجود ندارد. امتیاز 2500 در نسخه ۶ فقط مبنای کالیبراسیون روی یک دستگاه مرجع است، نه حد قبولی. معیار درست، مقایسه دو گزینهای است که روی میز شماست، با یک نسخه ثابت از ابزار.
چون سهم پردازنده و دیسک بین چند ماشین تقسیم میشود و بار همسایهها ثابت نیست. نوسان چنددرصدی طبیعی است؛ اختلاف بزرگ نشانه فشار روی میزبان است و با ثبت درصد steal دیده میشود.
همین عددها را روی همان سختافزاری نشان میدهد که قرار است سرویس بگیرید، بهجای عددهایی که دیگران منتشر کردهاند. تأخیر دیسک و امتیاز تکهسته را در فرصت کوتاه تست هم میتوان اندازه گرفت.
امتیاز تکهسته و تأخیر دیسک در بلوک کوچک. بار تعاملی به یک رشته اجرایی سریع نیاز دارد و از هسته زیاد بهره کمی میبرد. بخش شبکه این تصمیم با ابزارهای این مقاله پوشش داده نمیشود.
با احتیاط زیاد. نسخه ابزار، حجم فایل آزمایشی، فایلسیستم، عمق صف و ساعت اجرا در نتیجه اثر دارد. مقایسه وقتی معتبر است که همان پارامترها را خودتان روی هر دو سرور اجرا کرده باشید.
اگر در بار واقعی ستون wa در خروجی vmstat بالا باشد، گلوگاه دیسک است. اگر مصرف پردازنده نزدیک سقف و ستون wa پایین باشد، گلوگاه محاسباتی است. درصد steal بالا یعنی مشکل سمت میزبان است.
جمعبندی؛ بنچمارک سرور مجازی یعنی سه عدد، نه یک صفحه عدد
خروجی YABS و fio دهها رقم تولید میکند و همین فراوانی تصمیم را سختتر میکند. راه بیرون آمدن، کوچک کردن دامنه است: بار کاری خودتان را نام ببرید، عدد تعیینکننده همان بار را بردارید و بقیه را پشتیبان نگه دارید. برای وردپرس امتیاز تکهسته، برای دیتابیس تأخیر صدک ۹۹ در بلوک 4k، برای کارهای موازی امتیاز چندهسته و برای بکاپ پهنای باند بلوک بزرگ. سه قاعده هم اعتبار کار را نگه میدارد: ورودی و خروجی بدون بافر را فعال کنید، فایل آزمایشی را از RAM سرور بزرگتر بگیرید و درصد steal را کنار هر عدد ثبت کنید. تست را سه بار در ساعتهای مختلف تکرار کنید و کمترین مقدار را مبنای تصمیم بگذارید، نه بهترین مقدار را؛ چون کاربر شما همان بدترین لحظه را تجربه میکند. با این روش، مقایسه دو سرور به یک جدول قابل بازتولید تبدیل میشود.
🚀 سرور را با عدد خودتان انتخاب کنید
پلنهای سرور مجازی ایران وبداده با تحویل خودکار بعد از پرداخت و پنل اختصاصی برای نصب مجدد و اسنپشات در اختیار شماست؛ همین چرخه را روی سرور واقعی اجرا کنید و بعد تصمیم بگیرید.
اگر سوالی داشتید، در بخش نظرات با ما در ارتباط باشید.
منابع