iostat - إحصائيات وحدة المعالجة المركزية وقرص الإدخال/الإخراج
iostat تقرر استخدام وحدة المعالجة المركزية وإحصائيات الإدخال/الإخراج للقرص حسب الجهاز — الإنتاجية و IOPS وكمون الطلب وعمق الطابور. إنها محطة التوقف الأولى القياسية لتشخيص اختناقات التخزين على Linux: هل القرص مشبع، هل تتراكم الطلبات، هل الكمون يرتفع؟ تأتي كجزء من حزمة sysstat جنبًا إلى جنب مع mpstat و pidstat و sar.
التثبيت
| المنصة | الأمر |
|---|
| Debian/Ubuntu | sudo apt install sysstat |
| Fedora/RHEL | sudo dnf install sysstat |
| Arch Linux | sudo pacman -S sysstat |
| macOS | iostat مدمج (إخراج مختلف) |
| التحقق | iostat -V |
الاستخدام الأساسي
| الأمر | الوصف |
|---|
iostat | تقرير واحد منذ الإقلاع (وحدة المعالجة المركزية + الأجهزة) |
iostat 2 | تحديث كل ثانيتين |
iostat 2 5 | 5 تقارير على فترات ثانيتين |
iostat -x | الإحصائيات الممتدة (المفيدة حقًا) |
iostat -d | إحصائيات الجهاز فقط (بلا وحدة المعالجة المركزية) |
iostat -c | إحصائيات وحدة المعالجة المركزية فقط |
الأمر الذي تريده فعلاً
# ممتد وسهل القراءة وحسب الجهاز ويحدّث كل ثانيتين
iostat -xmt 2
| الراية | التأثير |
|---|
-x | الإحصائيات الممتدة (util%، await، aqu-sz وما إلى ذلك) |
-m | تقرير بـ MB/s (استخدم -k لـ KB/s) |
-t | طباعة طابع زمني مع كل تقرير |
-p DEV | عرض أقسام جهاز (مثل -p sda) |
-d 2 | تقرير الجهاز كل ثانيتين |
-h | صيغة سهلة القراءة وودية لـ NVMe |
قراءة الإخراج الممتد (-x)
| العمود | المعنى |
|---|
r/s, w/s | طلبات قراءة/كتابة في الثانية (IOPS) |
rMB/s, wMB/s | إنتاجية القراءة/الكتابة |
rareq-sz / wareq-sz | متوسط حجم الطلب |
r_await, w_await | كمون القراءة/الكتابة المتوسط (ms) — مقياس أساسي |
aqu-sz | متوسط عمق الطابور (الطلبات قيد التنفيذ) |
%util | جزء من الوقت كان الجهاز مشغولاً |
تفسير الإشارات
| الملاحظة | التفسير |
|---|
%util بالقرب من 100% | الجهاز مشبع (احذر على SSD/NVMe — يمكن أن يعمل بالتوازي) |
await عالي (عشرات ms +) | الطلبات بطيئة — اختناق الكمون |
aqu-sz عالي | الطلبات تتراكم أسرع من فرغ القرص |
| IOPS عالي وإنتاجية منخفضة | الإدخال/الإخراج العشوائي الصغير (عبء عمل قاعدة البيانات/البيانات الوصفية) |
| IOPS منخفض وإنتاجية عالية | الإدخال/الإخراج المتسلسل الكبير (النسخ الاحتياطية والبث) |
على SSD/NVMe الحديث، يمكن أن تقرأ %util 100% بينما يحتوي الجهاز على مساحة (يخدم الطلبات بالتوازي). ثق في await و aqu-sz أكثر من %util هناك.
قسم وحدة المعالجة المركزية
| الحقل | المعنى |
|---|
%user / %nice | الوقت في مساحة المستخدم |
%system | الوقت في النواة |
%iowait | وحدة المعالجة المركزية خاملة في انتظار الإدخال/الإخراج (تلميح ضغط التخزين) |
%steal | الوقت المسروق من قبل المراقب الافتراضي (الجيران الصاخبون) |
%idle | وقت الخمول |
%iowait عالية جنبًا إلى جنب مع await القرص العالي تشير مباشرة إلى التخزين كاختناق.
سير العمل الشائع
# راقب اختناق قرص مريب حيًا
iostat -xmt 2
# التركيز على جهاز واحد وأقسامه
iostat -xmt -p nvme0n1 2
# ربط انتظار وحدة المعالجة المركزية مع كمون الجهاز أثناء اختبار الحمل
iostat -xmt 1 60 > iostat.log
iostat مقابل الأدوات ذات الصلة
| الأداة | التركيز |
|---|
| iostat | إحصائيات الإدخال/الإخراج والمعالج حسب الجهاز |
| iotop | العملية التي تقوم بالإدخال/الإخراج |
| dstat/dool | عرض مدمج للمعالج/القرص/الشبكة |
| sar | نشاط النظام التاريخي/المسجل |
استخدم iostat لرؤية الجهاز بطيء ثم iotop لمعرفة أي عملية مسؤولة.
الموارد