حمل القرص: iostat وiotop
كيف تعرف ما إذا كان الجهاز محدودًا بالقرص، ومن يكتب بالضبط، وكيف تربط الأرقام بحد السرعة في مستوى VPS لديك.
آخر تحديث 23 أغسطس 2026
القرص هو السبب الأكثر شيوعًا لظاهرة «كل شيء بطيء لكن المعالج خامل». تبقى العمليات في انتظار الإدخال/الإخراج، ويرتفع متوسط الحمل، ومع ذلك يُظهر htop نسبة CPU% شبه معدومة. لنلقِ نظرة على كيفية رؤية ذلك بالأرقام.
ما هو المخصص لك
الأقراص على العُقد من نوع NVMe، لكن السرعة محدودة حسب المستوى: الكتابة — 60 ميغابايت/ثانية لكل نواة، لكن ليس أقل من 60 ولا أعلى من 400 ميغابايت/ثانية؛ والقراءة ضعف سرعة الكتابة. فوق الحد الأقصى، يُسمح بدفعة أعلى بثلاث مرات لمدة 30 ثانية — تكفي لفك ضغط أرشيف أو بناء مشروع، لكن ليس لرفع تيرابايت بشكل متواصل.
| المستوى | الأنوية | الكتابة، ميغابايت/ثانية | القراءة، ميغابايت/ثانية |
|---|---|---|---|
| VDS-1 | 1 | 60 | 120 |
| VDS-2 | 2 | 120 | 240 |
| VDS-3 | 4 | 240 | 480 |
| VDS-4 | 6 | 360 | 720 |
| VDS-5 و VDS-6 | 8 و 10 | 400 | 800 |
إذا وصلت قياساتك إلى هذه الأرقام بالضبط، فقد بلغت الحد الأقصى — لا شيء معطّل. وما بعد ذلك، لا يساعد سوى الانتقال إلى مستوى أعلى.
iostat: الصورة الكاملة
apt install -y sysstat # Debian, Ubuntu
dnf install -y sysstat # AlmaLinux, CentOS Stream
iostat -xz 2
يطبع الأمر لقطة كل ثانيتين. المخرجات الأولى هي المتوسط منذ الإقلاع — تجاهلها. انظر إلى سطر vda أو sda:
r/s،w/s— عمليات القراءة والكتابة في الثانية.rkB/s،wkB/s— بالميغابايت، اقسم على 1024. قارن مع الجدول أعلاه.await— متوسط الانتظار لكل عملية بالمللي ثانية. الأرقام الأحادية طبيعية؛ العشرات والمئات تعني وجود طابور.%util— مدى انشغال القرص. بقاؤه ثابتًا عند 90–100 % يعني أنك وصلت إلى الحائط.
vmstat 2 مفيد أيضًا: عمود wa (انتظار الإدخال/الإخراج) يُظهر، كنسبة مئوية، مقدار الوقت الذي يقضيه المعالج في مجرد الانتظار على القرص.
iotop: من يكتب بالضبط
apt install -y iotop && iotop -oPa
-o يُظهر العمليات النشطة فقط، و-P يُظهر العمليات بدلًا من الخيوط، و-a يُظهر الحجم المتراكم منذ التشغيل. بعد دقيقة من المراقبة سترى المتسبب الحقيقي: عادةً قاعدة بيانات أو جامع سجلات أو نسخة احتياطية.
فحص لمرة واحدة دون الواجهة التفاعلية:
iotop -boPan 3 | head -20
ما العمل بشأن ما تجده
- السجل يكتب. حدّد حجمه:
journalctl --vacuum-size=200MوSystemMaxUse=200Mفي/etc/systemd/journald.conf. لمزيد من التفاصيل، راجع سجلات systemd. - قاعدة البيانات تكتب. تحقق مما إذا كان مسح جدول كامل يعمل بسبب فهرس مفقود، وما إذا كانت الذاكرة المؤقتة مضبوطة على قيمة صغيرة جدًا فتدفع كل شيء إلى القرص.
- نسخة احتياطية أو rsync خلال ساعات العمل. حدّد السرعة:
rsync --bwlimit=20M؛ وللأرشفة، استخدمionice -c3 nice -n19 tar ...حتى تتنازل المهمة عن الأولوية. - الذاكرة التبديلية. إذا كان القرص منشغلًا بالترحيل، فالمشكلة ليست في القرص بل في الذاكرة — راجع الذاكرة والذاكرة التبديلية.
أخطاء شائعة
قياس السرعة باستخدام dd مع conv=fdatasync واستخلاص النتائج من تشغيل واحد: الثواني الأولى تعمل على الدفعة وتعطي نتيجة مبالغًا فيها. المنهجية الصحيحة في قياس سرعة القرص والشبكة.
القرص الممتلئ يبدو أيضًا كظاهرة «كل شيء بطيء»: لا توجد مساحة حرة، فلا تستطيع إحدى الخدمات كتابة ملف مؤقت وتتوقف عن الاستجابة. تحقق من
df -hأولًا — فهذا يستغرق ثانية واحدة.