iotop - مراقب الإدخال/الإخراج لكل عملية
iotop هي أداة top-like تعرض استخدام الإدخال/الإخراج للقرص لكل عملية في الوقت الفعلي. حيث يخبرك iostat أن جهاز مشغول، تخبرك iotop أي عملية تقوم بالقراءة والكتابة وبأي معدل وأولويتها للإدخال/الإخراج. إنها الطريقة الأسرع للإجابة على “ما الذي يضرب القرص الآن؟” إنها تقرأ بيانات محاسبة النواة وبالتالي تحتاج إلى root.
التثبيت
| المنصة | الأمر |
|---|
| Debian/Ubuntu | sudo apt install iotop |
| Fedora/RHEL | sudo dnf install iotop |
| Arch Linux | sudo pacman -S iotop |
| المتطلب | النواة مع CONFIG_TASK_IO_ACCOUNTING (قياسي) |
| التحقق | sudo iotop --version |
التشغيل
| الأمر | الوصف |
|---|
sudo iotop | عرض مباشر للعمليات |
sudo iotop -o | فقط عرض العمليات التي تقوم بالإدخال/الإخراج فعلاً |
sudo iotop -a | عرض الإدخال/الإخراج المتراكم (الإجماليات وليس الأسعار) |
sudo iotop -P | عرض العمليات (وليس الخيوط الفردية) |
sudo iotop -u USER | تصفية حسب المستخدم |
sudo iotop -d 5 | تحديث كل 5 ثواني |
العرض
| العمود | المعنى |
|---|
TID/PID | معرّف الخيط أو العملية |
PRIO | فئة أولوية جدولة الإدخال/الإخراج |
USER | مالك العملية |
DISK READ | معدل القراءة الحالي |
DISK WRITE | معدل الكتابة الحالي |
SWAPIN | % الوقت المستغرق للقسط |
IO | % الوقت في انتظار الإدخال/الإخراج |
COMMAND | سطر أوامر العملية |
يعرض سطرا رأس الإجمالي والفعلي قراءة/كتابة القرص للنظام بأكمله.
مفاتيح تفاعلية
| المفتاح | الإجراء |
|---|
o | تبديل --only (إخفاء العمليات الخاملة) |
a | تبديل المتراكم مقابل السعر |
p | تبديل العمليات/الخيوط |
r | عكس ترتيب الفرز |
← / → | تغيير عمود الفرز |
q | خروج |
وضع الدفعة / تسجيل
لـ النصوص والتقاط الأدلة، قم بالتشغيل بدون تفاعل.
# سجل عمليات الإدخال/الإخراج العليا كل ثانيتين و 10 تكرارات بدون نشاط
sudo iotop -boPqqq -d 2 -n 10 > iotop.log
| الراية | التأثير |
|---|
-b | وضع دفعة (غير تفاعلي) |
-o | العمليات النشطة فقط |
-n N | عدد التكرارات |
-q | صامت (كرر لقمع الرؤوس) |
-k | كيلوبايتات |
سير العمل الشائع
# "ما الذي يكتب إلى القرص الآن؟" — فقط العمليات النشطة وليس الخيوط
sudo iotop -oP
# التقط ارتفاع الإدخال/الإخراج الدوري بمرور الوقت
sudo iotop -boP -d 1 -n 60 > spikes.log
# ألوم عمليات المستخدم لحمل القرص
sudo iotop -oP -u appuser
أولوية الإدخال/الإخراج (إقران مع ionice)
تعرض iotop PRIO (ionice) class؛ تغيرها مع ionice.
| فئة ionice | المعنى |
|---|
ionice -c 1 | أولوية الإدخال/الإخراج في الوقت الفعلي |
ionice -c 2 -n 0..7 | بأفضل ما في الإمكان (افتراضي) والمستوى 0 = الأعلى |
ionice -c 3 | خامل — فقط الإدخال/الإخراج عندما يكون القرص خاليًا |
# قلل أولوية الإدخال/الإخراج لعملية دفعية ثقيلة
ionice -c 3 -p $(pgrep -n backup)
iotop مقابل الأدوات ذات الصلة
| الأداة | الإجابات |
|---|
| iotop | أي عملية تقوم بالإدخال/الإخراج |
| iostat | ما إذا كان الجهاز مشبع |
| pidstat -d | الإدخال/الإخراج لكل عملية (قابلة للبرمجة sysstat) |
| dstat/dool | عرض النظام المدمج |
سير العمل: iostat يظهر القرص مشغول ثم iotop يظهر أي عملية ثم ionice تقلل الأولوية.
الموارد