اكتشاف وحل مشاكل بطء إدخال/إخراج القرص
اكتشاف وحل مشاكل بطء I/O القرص على خوادم Linux باستخدام iotop وiostat وتقنيات التحسين.
جدول المحتويات
مقدمة
بطء إدخال/إخراج القرص مشكلة شائعة تؤثر بشكل كبير على أداء الخادم. تتباطأ استعلامات قاعدة البيانات، وتتوقف تطبيقات الويب عن الاستجابة، ويبدو النظام بطيئاً بشكل عام. يغطي هذا الدليل كيفية اكتشاف وحل مشاكل بطء I/O القرص.
الأعراض
علامات نموذجية لبطء I/O القرص:
- تتوقف الأوامر لفترة طويلة (خاصة
lsوfindوقراءة/كتابة الملفات) - استعلامات قاعدة البيانات أبطأ بكثير من المعتاد
- قيمة
wa(انتظار I/O) مرتفعة فيtopأوhtop - أخطاء انتهاء المهلة في سجلات التطبيقات
الخطوة 1: فحص انتظار I/O
# فحص انتظار I/O باستخدام top
top
# انظر إلى عمود 'wa' — فوق 5% يشير إلى مشكلة
# حالة I/O الفورية مع vmstat
vmstat 1 10
# إحصائيات القرص مع iostat
iostat -x 1 5
# %util فوق 80% يعني أن القرص مشبع
الخطوة 2: أي عملية تستخدم القرص؟
# مراقبة I/O القرص في الوقت الفعلي مع iotop
sudo apt install iotop -y
sudo iotop -o
# I/O لكل عملية مع pidstat
sudo apt install sysstat -y
pidstat -d 1 5
الخطوة 3: اختبار أداء القرص
# اختبار كتابة بسيط
dd if=/dev/zero of=/tmp/test_write bs=1M count=1024 oflag=direct
# اختبار شامل مع fio
sudo apt install fio -y
fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread \
--bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 \
--group_reporting --filename=/tmp/fio_test
rm /tmp/fio_test /tmp/test_write
الخطوة 4: فحص صحة القرص
# حالة SMART
sudo apt install smartmontools -y
sudo smartctl -a /dev/sda
# أخطاء القرص
dmesg | grep -i -E '(error|fail|bad|ata|scsi|disk)'
إذا كان Reallocated_Sector_Ct أو Pending_Sector_Count أكبر من 0، فالقرص على وشك الفشل. قم بالنسخ الاحتياطي فوراً.
الخطوة 5: تحسين نظام الملفات
# استخدام القرص
df -h
# تنظيف السجلات
sudo journalctl --vacuum-size=500M
# إضافة noatime إلى /etc/fstab
# UUID=xxx / ext4 defaults,noatime 0 1
# جدولة I/O لـ SSD
echo 'none' | sudo tee /sys/block/sda/queue/scheduler
الخطوة 6: استخدام tmpfs لتقليل I/O
# tmpfs لـ /tmp
echo 'tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=2G 0 0' | sudo tee -a /etc/fstab
sudo mount -a
الخلاصة
لحل مشاكل بطء I/O القرص، حدد أولاً باستخدام iotop وiostat أي عملية تضغط على القرص، ثم تحقق من صحة القرص باستخدام SMART. يمكن لتحسينات نظام الملفات (noatime، جدولة I/O) واستخدام tmpfs تحسين الأداء بشكل كبير. في حالة الأعطال المادية للقرص، قم بالنسخ الاحتياطي فوراً واتصل بـ دعم REXE.
مقالات ذات صلة
مشكلة اتصال SSH: لا يمكن الاتصال بالخادم — الحل
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
مشكلة اتصال RDP: لا يمكن الاتصال بـ Windows Server
دليل حل مشاكل اتصال RDP: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ RDP وخطوات استكشاف الأخطاء وإصلاحها.
كيفية إجراء اختبار MTR وإرسال النتائج للدعم
دليل اختبار الشبكة باستخدام WinMTR وLinux MTR، إنشاء قاعدة فلترة ICMP وإرسال النتائج لفريق الدعم. تشخيص فقدان الحزم والتأخير في الشبكة.