Skip to content
VDS · المراقبة والأداء

قياس سرعة القرص والشبكة

كيف تقيس القرص والشبكة بصدق على مستوى VPS لديك، وما الأرقام التي تُعد طبيعية، ولماذا تكذب الثواني الأولى من الاختبار دائماً.

آخر تحديث 23 أغسطس 2026

يُعد القياس ضروريًا في حالتين: للتأكد من أن الجهاز يقدم ما يَعِد به، ولفهم ما إذا كان تطبيقك يصل إلى حدٍّ من حدود العتاد. والأهم هو القياس بشكل صحيح، وإلا فستحصل على أرقام تبدو جيدة لكنها لا علاقة لها بالواقع.

ما الذي ينبغي أن تحصل عليه

سرعة القرص محدودة بالمستوى: الكتابة 60 ميغابايت/ثانية لكل نواة، لكن ليس أقل من 60 ولا أعلى من 400 ميغابايت/ثانية؛ والقراءة ضعف سرعة الكتابة. وفوق الحد المستمر، يُسمح بدفعة أعلى بثلاثة أضعاف لمدة 30 ثانية.

المستوىالكتابة، ميغابايت/ثانيةالقراءة، ميغابايت/ثانيةدفعة الكتابة، ميغابايت/ثانية
VDS-160120180
VDS-2120240360
VDS-3240480720
VDS-43607201080
VDS-5, VDS-64008001200

عرض النطاق الشبكي يصل إلى 500 ميغابت/ثانية، أي نحو 60 ميغابايت/ثانية في الظروف المثالية.

ومن هنا الاستنتاج المنهجي الأساسي: الاختبار القصير سيقع ضمن نافذة الدفعة ويُظهر نتيجة مبالغًا فيها. عليك أن تقيس لمدة تزيد على 30 ثانية أو على حجم يتجاوز الدفعة بوضوح.

القرص

فحص سريع للكتابة التتابعية:

dd if=/dev/zero of=/root/testfile bs=1M count=8192 oflag=direct status=progress
rm /root/testfile

يتجاوز oflag=direct ذاكرة التخزين المؤقت للصفحات — فبدونه ستقيس سرعة الذاكرة. تستغرق كتابة ثمانية غيغابايت على VDS-1 وقتًا أطول بوضوح من 30 ثانية، لذا ستُحسب الدفعة ضمن المتوسط.

القراءة مع ذاكرة تخزين مؤقت باردة:

dd if=/dev/zero of=/root/testfile bs=1M count=4096 oflag=direct
sync && echo 3 > /proc/sys/vm/drop_caches
dd if=/root/testfile of=/dev/null bs=1M iflag=direct
rm /root/testfile

الأداة الأكثر صدقًا هي fio؛ فهي تستطيع إجراء وصول عشوائي، وهو ما يهم قواعد البيانات:

apt install -y fio
fio --name=rand --rw=randwrite --bs=4k --size=2G --numjobs=1 \
    --runtime=60 --time_based --direct=1 --ioengine=libaio --iodepth=32 \
    --filename=/root/fiotest
rm /root/fiotest

انظر إلى IOPS وزمن الاستجابة، وليس إلى الميغابايت فقط: مع الكتابات العشوائية بكتل 4 كيلوبايت، تكون الميغابايت دائمًا متواضعة.

الشبكة

apt install -y speedtest-cli && speedtest-cli --secure
curl -o /dev/null -w '%{speed_download}\n' https://speed.cloudflare.com/__down?bytes=104857600
iperf3 -c OTHER_SERVER -t 30       # if there is a second machine

تعتمد النتيجة على المسار إلى نقطة القياس، لذا اختبر من مصدرين أو ثلاثة مصادر مختلفة. السرعة إلى مستخدم معيّن تكون دائمًا أقل من سقف القناة — فهناك شبكات أخرى على طول المسار.

قِس زمن الاستجابة بشكل منفصل: سيُظهر ping -c 20 8.8.8.8 وmtr -rwc 50 8.8.8.8 أين تُفقد الحزم.

أخطاء شائعة

  • الاختبار دون direct. يكتب dd دون oflag=direct إلى ذاكرة التخزين المؤقت ويُظهر غيغابايتات في الثانية. تلك هي سرعة الذاكرة.
  • حجم صغير جدًا. 1 غيغابايت على VDS-3 يقع ضمن الدفعة — وستحصل على نتيجة مبالغًا فيها.
  • القياس تحت الحمل. إذا كانت قاعدة بيانات أو نسخة احتياطية تعمل في تلك اللحظة، فأنت تقيس المتبقي. تحقق من iostat قبل أن تبدأ.
  • نسيان حذف ملف الاختبار. يمكن لعدد قليل من التشغيلات أن يستهلك بسهولة 40 غيغابايت من مساحة قرص VDS-1؛ راجع نفاد مساحة القرص.
  • القياس على قرص الاسترداد. وضع SystemRescue ليس للاختبارات المرجعية؛ فله خصائص أداء مختلفة.

إذا كانت النتيجة أقل باستمرار من الجدول على جهاز خامل، فأرفق مخرجات الأوامر وتواصل مع الدعم. وإذا طابقت الحد المستمر تمامًا، فقد وصلت إلى سقف المستوى، ولن يساعد سوى الترقية إلى مستوى أعلى.