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

به اشتراک بگذارید
آموزش سرور | بلاگ وبداده
بنچمارک سرور اختصاصی بعد از تحویل؛ از سلامت دیسک تا سرعت واقعی شبکه
💡 خلاصه مقاله در ۳ خط
💡 بنچمارک = اندازهگیری تکرارپذیر توان واقعی سرور
🔶 سرور اختصاصی ایران با سختافزار HPE
📌 آنچه در این مقاله میخوانید
[1] Inventory lscpu / free / lsblk / ethtool
⬇️
[2] Health smartctl / nvme-cli / dmesg
⬇️
[3] Benchmark fio / sysbench / iperf3
⬇️
[4] Stress stress-ng (30-60 min)
⬇️
[5] Baseline ➡️ save results ✅ | anomaly ➡️ ticket ⚠️
🔸 نکته فنی: بار مصنوعی در برابر بار واقعی

| ابزار | چه چیزی را میسنجد | خروجی کلیدی | نکته مهم |
|---|---|---|---|
| smartctl و nvme-cli | سلامت دیسک | Critical Warning، Media Errors، Percentage Used | تست سلامت است، نه سرعت |
| fio | سرعت و تأخیر دیسک | IOPS، BW، صدکهای clat | روی فایل تست اجرا شود، نه دیسک خام |
| sysbench | CPU و پهنای باند رم | events per second، MiB/sec | برای مقایسه نسبی مناسب است |
| stress-ng | پایداری CPU و رم زیر بار | خطای verify، دما، پیامهای کرنل | طبق مستندات، بنچمارک دقیق نیست |
| iperf3 | گذردهی شبکه | Bitrate و Retr | نتیجه به سرور مقصد وابسته است |
| MTR | مسیر و کیفیت شبکه | درصد Loss و تأخیر هر hop | برای مسیرهای بینالملل مفید است |
| Geekbench و UnixBench | امتیاز کلی سیستم | امتیاز تکهسته و چندهسته | امتیاز نسخههای مختلف همارز نیست |
| DiskSpd | دیسک در ویندوز سرور | IOPS، MiB/s و تأخیر | ابزار رسمی مایکروسافت |
apt update
apt install -y fio iperf3 smartmontools nvme-cli stress-ng sysbench mtr-tiny ethtool
lscpu | grep -E "Model name|Socket|Core|Thread"
nproc
free -h
dmidecode -t memory | grep -E "Size:|Speed:|Type:"
lsblk -d -o NAME,MODEL,SIZE,ROTA
nvme list
ip link
ethtool eno1 | grep Speed
smartctl -a /dev/nvme0
smartctl -t short /dev/nvme0
smartctl -l selftest /dev/nvme0
nvme smart-log /dev/nvme0
cd /root
fio --name=randread --filename=fio.test --size=4G --direct=1 \
--ioengine=libaio --rw=randread --bs=4k --iodepth=32 \
--numjobs=4 --runtime=60 --time_based --ramp_time=5 --group_reporting
# random write : --rw=randwrite
# mixed 70/30 : --rw=randrw --rwmixread=70
# sequential : --rw=read --bs=1M --iodepth=8 --numjobs=1
rm -f fio.test
⚠️ هشدار: روی دیسک خام تست نوشتن نگیرید
sysbench cpu --threads=1 --time=30 run
sysbench cpu --threads=$(nproc) --time=30 run
sysbench memory --threads=4 run
stress-ng --cpu 0 --cpu-method matrixprod --timeout 30m --metrics-brief --tz
stress-ng --vm 2 --vm-bytes 35% --verify --timeout 30m --metrics-brief
dmesg -T | grep -iE "error|mce|edac|thermal"
# on the remote server
iperf3 -s
# on your new server
iperf3 -c REMOTE_IP -P 4 -t 30 -O 3
iperf3 -c REMOTE_IP -P 4 -t 30 -O 3 -R
iperf3 -c REMOTE_IP -P 4 -t 30 --bidir
mtr -rwc 100 REMOTE_IP
⚠️ احتیاط در اجرای اسکریپتهای آماده
diskspd -t2 -o32 -b4K -r4K -w0 -d120 -Sh -L -c5G C:\test\io.dat

| نشانه در خروجی | معنی احتمالی | اقدام پیشنهادی |
|---|---|---|
| Critical Warning غیر صفر یا Media Errors بالای صفر | ایراد سختافزاری دیسک | توقف تست و ارسال تیکت با خروجی smartctl |
| افت سرعت در نوشتن ترتیبی طولانی | پر شدن کش نوشتن درایو (TurboWrite) | طبیعی است؛ با بار واقعی مقایسه کنید |
| خطای verify در stress-ng یا پیام MCE در dmesg | ایراد احتمالی رم یا پردازنده | گزارش فوری به پشتیبانی |
| Speed کمتر از 10000Mb/s در ethtool | برقراری لینک با سرعت پایینتر | گزارش با خروجی ethtool |
| عدد پایین iperf3 با Retr زیاد | ازدحام یا مشکل مسیر | تست با مقصد نزدیکتر و گرفتن MTR |
| عدد پایین iperf3 بدون Retr با مقصد خارجی | محدودیت مقصد یا مسیر بینالملل | تست با سروری در همان شبکه |
📚 از منابع معتبر

⚠️ شفافیت درباره نسل سختافزار
شناسنامه سختافزار و بررسی SMART چند دقیقه زمان میبرد. هر تست دیسک یا شبکه با تنظیمات این راهنما حدود یک دقیقه است، اما بهتر است سه بار تکرار شود. تست استرس CPU و رم را دستکم ۳۰ تا ۶۰ دقیقه اجرا کنید؛ پس یک بررسی کامل حدود یک تا دو ساعت وقت میگیرد.
برای برداشت اولیه مفید است، اما مقصد این سایتها سرورهای عمومی با ظرفیت و بار نامعلوم است. برای سنجش پورت سرور، iperf3 با چند جریان موازی به مقصدی با پورت هماندازه در همان شبکه دقیقتر است و MTR هم کیفیت مسیر را در هر hop نشان میدهد.
dd عمدتاً خواندن یا نوشتن ترتیبی با یک رشته را میسنجد و برای برداشت کلی بد نیست. اما بار واقعی سرور، بهخصوص دیتابیس، از عملیات تصادفی کوچک و صفهای عمیق تشکیل میشود. fio این الگوها را با کنترل اندازه بلاک، عمق صف و تعداد رشته شبیهسازی میکند و صدکهای تأخیر را هم گزارش میدهد.
تست خواندن آسیبی نمیزند و تست نوشتن در حد چند گیگابایت هم سهم بسیار کوچکی از دوام درایو را مصرف میکند؛ دیتاشیت 990 PRO یک ترابایتی دوام را 600TB نوشتن اعلام کرده است. خطر واقعی، نوشتن روی دیسک خام بهجای فایل تست است که دادهها را پاک میکند.
نه لزوماً. PASSED فقط میگوید درایو خودش را در وضعیت خرابی اعلام نکرده است. جزئیات Critical Warning، Media and Data Integrity Errors، Available Spare و Percentage Used را هم ببینید. اگر شمارنده خطا غیر صفر است یا طی چند روز رشد میکند، موضوع را با خروجی کامل به پشتیبانی گزارش دهید.
این عدد طبیعی است و به سربار هدرهای اترنت، IP و TCP با MTU 1500 برمیگردد. اگر عدد بسیار پایینتر است، Speed را در خروجی ethtool بررسی کنید، با گزینه -P چند جریان موازی بسازید و مطمئن شوید سرور مقصد هم پورت 10 گیگ و بار کم دارد.
تستهای سبک مانند smartctl -a، ethtool و MTR بیخطرند. اما fio با عمق صف بالا، stress-ng و تستهای طولانی شبکه منابع را اشغال میکنند و ممکن است سایت را کند یا از دسترس خارج کنند. اگر ناچارید، در ساعت کمبار، با مدت کوتاه و پس از بکاپ تست کنید و بدانید بار سایت روی عددها اثر میگذارد.
تست را روی سرور خالی و دستکم سه بار تکرار کنید و جدول تفسیر نتایج را مرور کنید تا رفتار طبیعی مثل سقف PCIe 3.0 یا کش نوشتن درایو را با خرابی اشتباه نگیرید. اگر نشانه همچنان جدی بود، خروجی کامل دستورها، زمان اجرا و مشخصات مقصد شبکه را در یک تیکت بفرستید.