كيف تقيّم أداء سيرفرك: benchmark خطوة بخطوة

CPU مع sysbench، ذاكرة مع memtester، تخزين مع fio، شبكة مع iperf3. أرقام حقيقية — مو إحساس.
لماذا تقيس أداء السيرفر؟
قبل اختيار مزود استضافة أو ترقية مواصفات السيرفر، تحتاج إلى أرقام حقيقية. Benchmarking يعطيك إجابات موضوعية: هل هذا السيرفر يناسب تطبيقي؟ هل الترقية تستحق التكلفة؟ كيف يقارن بالسيرفرات الأخرى؟
هذا الدليل يغطي أدوات القياس المعيارية وكيفية تفسير النتائج.
قياس أداء المعالج (CPU)
Sysbench
# تثبيت sysbench
apt install sysbench -y
# اختبار المعالج الأحادي
sysbench cpu --threads=1 run
# اختبار متعدد الخيوط (يساوي عدد vCPU)
sysbench cpu --threads=4 run
مثال على نتيجة جيدة:
CPU speed:
events per second: 2500+ ← قيمة جيدة لـ vCPU واحد
UnixBench
# تثبيت UnixBench
apt install git make gcc -y
git clone https://github.com/nicowillis/unixbench.git
cd unixbench && ./Run
# يعطي نقاط شاملة لكل جوانب الأداء
قياس أداء الذاكرة (RAM)
# sysbench للذاكرة
sysbench memory --memory-total-size=10G run
# نتيجة جيدة: > 10 GB/sec للقراءة
# اختبار بديل بـ dd
dd if=/dev/zero of=/dev/null bs=1M count=10240 2>&1 | tail -1
قياس أداء القرص الصلب (SSD)
اختبار القراءة التسلسلية
# fio - الأداة المعيارية لقياس أداء القرص
apt install fio -y
# قراءة تسلسلية
fio --name=seq-read \
--rw=read \
--bs=1M \
--size=4G \
--numjobs=1 \
--runtime=60 \
--group_reporting
# كتابة تسلسلية
fio --name=seq-write \
--rw=write \
--bs=1M \
--size=4G \
--numjobs=1 \
--runtime=60 \
--group_reporting
اختبار القراءة العشوائية (الأهم للـ databases)
# IOPS عشوائي - الأهم لقواعد البيانات
fio --name=rand-read \
--rw=randread \
--bs=4k \
--size=4G \
--numjobs=4 \
--runtime=60 \
--group_reporting \
--iodepth=32
نتائج مرجعية
| نوع القرص | قراءة تسلسلية | كتابة تسلسلية | Random IOPS |
|---|---|---|---|
| SSD SATA | 500-550 MB/s | 400-500 MB/s | 70K-100K |
| NVMe SSD | 2,000-7,000 MB/s | 1,000-5,000 MB/s | 300K-1M |
| HDD | 100-200 MB/s | 80-150 MB/s | 100-200 |
قياس أداء الشبكة
# تثبيت iperf3
apt install iperf3 -y
# على سيرفر الاختبار (server mode)
iperf3 -s
# على سيرفرك (client mode)
iperf3 -c server-ip -t 30
# اختبار سرعة التحميل من Internet
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3
# أو اختبار ping لمنطقتك
ping -c 20 riyadh-server-ip
اختبار Latency لمراكز كلاود
# Latency للرياض وجدة (من داخل السعودية)
ping -c 20 cloud.net.sa
# traceroute لفهم مسار الشبكة
traceroute cloud.net.sa
mtr cloud.net.sa # أفضل من traceroute
سيرفرات كلاود في الرياض وجدة تحقق latency زمن استجابة منخفض جداً لأغلب المستخدمين في السعودية.
قياس أداء الويب (HTTP Load Testing)
Apache Bench (ab)
# تثبيت
apt install apache2-utils -y
# 1000 طلب، 100 متزامن
ab -n 1000 -c 100 https://yoursite.com/
# مع headers مخصصة
ab -n 1000 -c 100 -H "Accept-Encoding: gzip" https://yoursite.com/api/data
wrk (أقوى من ab)
# تثبيت
apt install wrk -y
# 30 ثانية، 12 خيط، 400 اتصال متزامن
wrk -t12 -c400 -d30s https://yoursite.com/
# مع Lua script لطلبات POST
wrk -t12 -c400 -d30s -s post.lua https://yoursite.com/api
k6 (الأحدث والأقوى)
# تثبيت
apt install gnupg2 -y
gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg \
--keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69
echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | \
tee /etc/apt/sources.list.d/k6.list
apt update && apt install k6 -y
// load-test.js
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '2m', target: 100 }, // ramp-up
{ duration: '5m', target: 100 }, // stay at 100
{ duration: '2m', target: 0 }, // ramp-down
],
};
export default function {
const res = http.get('https://yoursite.com/');
check(res, { 'status was 200': (r) => r.status === 200 });
sleep(1);
}
k6 run load-test.js
تفسير النتائج
مقاييس HTTP المهمة
| المقياس | ممتاز | جيد | يحتاج تحسين |
|---|---|---|---|
| P50 Latency | < 50ms | < 100ms | > 200ms |
| P95 Latency | < 200ms | < 500ms | > 1s |
| P99 Latency | < 500ms | < 1s | > 2s |
| Requests/sec | > 1000 | > 500 | < 100 |
| Error Rate | 0% | < 0.1% | > 1% |
سكريبت benchmark شامل
#!/bin/bash
# cloud-benchmark.sh - قياس شامل لسيرفر كلاود
echo "=== CPU Benchmark ==="
sysbench cpu --threads=$(nproc) run 2>&1 | grep "events per second"
echo ""
echo "=== Memory Benchmark ==="
sysbench memory --memory-total-size=5G run 2>&1 | grep "transferred"
echo ""
echo "=== Disk Sequential Read ==="
dd if=/dev/zero of=/tmp/testfile bs=1G count=2 2>&1 | tail -1
echo ""
echo "=== Disk Sequential Write ==="
dd if=/tmp/testfile of=/dev/null bs=1G 2>&1 | tail -1
rm /tmp/testfile
echo ""
echo "=== Network Latency ==="
ping -c 10 8.8.8.8 | tail -2
chmod +x cloud-benchmark.sh
./cloud-benchmark.sh
خلاصة
القياس المنهجي يعطيك حقائق بدل تخمينات. قبل الشكوى من بطء السيرفر، شغّل هذه الاختبارات وحدد أين الاختناق فعلاً. في أغلب الحالات، المشكلة ليست في السيرفر — بل في الكود أو قاعدة البيانات. على كلاود، الأداء موثق وقابل للقياس.
ابدأ الآن
تبي تجرب بنفسك؟ اختر باقة الاستضافة المناسبة أو صمم سيرفرك الخاص بالمواصفات اللي تبيها.
