سرعة القرص: الأساس والاندفاع
كيف يُحسب حد سرعة القرص حسب المستوى، ولماذا نحتاج اندفاعًا لمدة 30 ثانية، وكيف تقيس السرعة الحقيقية، وماذا تفعل إذا وصلت إلى الحد.
آخر تحديث 23 أغسطس 2026
القرص في VPS من نوع NVMe، لكن السرعة محدودة حسب المستوى حتى لا تلتهم آلة واحدة المورد المشترك للعقدة. فهم هذه الأرقام ينجيك من سؤال «لماذا قاعدة البيانات بطيئة بينما المعالج فارغ».
كيف تُحسب
خط الأساس للكتابة هو 60 MB/s لكل نواة، لكن ليس أقل من 60 ولا أعلى من 400 MB/s. القراءة ضعف خط أساس الكتابة. فوق خط الأساس، يتوفر انفجار بثلاثة أمثال قيمته لمدة 30 ثانية.
| المستوى | الأنوية | خط أساس الكتابة | خط أساس القراءة | انفجار الكتابة (30 ثانية) |
|---|---|---|---|---|
| VDS-1 | 1 | 60 MB/s | 120 MB/s | 180 MB/s |
| VDS-2 | 2 | 120 MB/s | 240 MB/s | 360 MB/s |
| VDS-3 | 4 | 240 MB/s | 480 MB/s | 720 MB/s |
| VDS-4 | 6 | 360 MB/s | 720 MB/s | 1080 MB/s |
| VDS-5 | 8 | 400 MB/s | 800 MB/s | 1200 MB/s |
| VDS-6 | 10 | 400 MB/s | 800 MB/s | 1200 MB/s |
يغطي الانفجار ما ينبغي له: تشغيل التطبيق، فك ضغط الأرشيف، تطبيق ترحيل. أما تدفق الكتابة المستمر — نسخ غيغابايتات، عملية بناء، فحص قاعدة بيانات كبيرة — فيسير عند خط الأساس.
كيف تقيس
sudo apt install -y fio
fio --name=w --rw=write --bs=1M --size=2G --numjobs=1 \
--runtime=60 --time_based --end_fsync=1 --directory=/var/tmp
ستُظهر الثواني الأولى انفجارًا، ثم تنخفض السرعة إلى خط الأساس — هذه هي الصورة الطبيعية والمتوقعة، وليست عطلًا.
فحص سريع تقريبي دون تثبيت حزم:
dd if=/dev/zero of=/var/tmp/testfile bs=1M count=2048 oflag=direct
rm /var/tmp/testfile
لا تُجرِ اختبارات القرص على آلة إنتاج خلال ساعات العمل. سيستهلك الاختبار فعلًا كامل النطاق الترددي المتاح، وسيستغرق موقعك ثوانٍ للاستجابة خلال تلك الدقائق. ولا تترك ملفات الاختبار خلفك: غيغابايتان على قرص سعة 40 GB حصة ملحوظة، انظر مساحة القرص.
كيف تعرف أن القرص هو عنق الزجاجة
sudo apt install -y sysstat
iostat -x 2 5
vmstat 2 5
انظر إلى مقياسين: %util قريب من 100 وawait في حدود عشرات الميلي ثانية يشيران إلى طابور على القرص. وفي vmstat العلامة نفسها — عمود b متزايد (عمليات في الانتظار) مع نسبة استغلال منخفضة للمعالج.
عرض آخر: load average مرتفع مع معالج شبه خامل. فمتوسط الحمل في Linux يحسب أيضًا العمليات المنتظرة للقرص.
من يكتب بالضبط:
sudo iotop -o -b -n 3
ماذا تفعل إذا وصلت إلى عنق الزجاجة
- وزّعها على أوقات مختلفة. النسخ، وبناء السجلات، والتقارير — ليلًا وليس في الوقت نفسه. انظر المهام المجدولة.
- حدّ من المهام الخلفية.
rsync --bwlimit، وnice -n 19 ionice -c3 <command>لكل ما ليس عاجلًا. - قلّل الكتابة. حدّ من حجم السجلات، وعطّل الإسهاب المفرط في التطبيق، وانقل الذاكرة المؤقتة إلى الذاكرة (
tmpfs) إن كانت ستصمد بعد إعادة التشغيل. - اضبط قاعدة البيانات. في PostgreSQL وMySQL، الحصة الأكبر من الكتابة هي سجل المعاملات. ذاكرة أكبر للمخازن المؤقتة تعني وصولًا أقل إلى القرص.
- ارتقِ مستوى. ينمو خط الأساس مع الأنوية: من VDS-1 إلى VDS-2 يتضاعف. الترقية المخططة ممكنة للأعلى فقط، مع دفع إضافي عن الأيام المتبقية من المدة المدفوعة.
أخطاء شائعة
- قياس السرعة بـ
ddدونoflag=direct. تستقر البيانات في ذاكرة التخزين المؤقت للصفحات، فتأتي الأرقام منتفخة. - التعامل مع الانفجار كسرعة مستمرة. الثواني الثلاثون الأولى سريعة، ثم خط الأساس — وهذا مقصود بالتصميم.
- إبقاء swap على القرص النشط والكتابة إليه. عند نقص الذاكرة، يحوّل swap القرص إلى عنق زجاجة: الأفضل تقييد الحاويات، انظر حدود الموارد.