خطای IO هارد یکی از دلایل رایج ضعف عملکرد سرور است. هاردها معمولاً دارای سرعتی محدود هستند و درصورتیکه نرمافزارها تلاش کنند دادهها را با سرعت بیشتری بخوانند، زمان انتظار کاربران حتی بیشتر هم خواهد شد.
البته خطای IO هارد تنها دلیل کندی سرور نیست. در این مقاله نحوه استفاده از ابزار Linux IO stats را برای شناسایی و رفع خطای IO هارد در سرور و هاست لینوکس توضیح خواهیم داد. با ما همراه باشید.
علائم خطای IO هارد در سرور
IO هارد نقش مهمی در عملکرد سرور دارد و مشکلات آن در مراحل اولیه به شکلهای مختلفی قابل ظاهر میشوند. برخی از این اشکال شامل موارد زیر هستند:
- کندتر شدن بارگذاری سایت
- افزایش وزن بار سرور
- دریافت پیام chkservd
- پایین آمدن سرعت ارسال ایمیل
- کندشدن رابطهای سیپنل و WHM
آیا IO هارد علت عملکرد ضعیف است؟
از دید کاربر، خطای IO هارد تنها به شکل کندشدن سرعت سایت نمود پیدا میکند. در واقع این مشکل شبیه به مشکلات شبکه خودش را نشان میدهد؛ بنابراین، قبل از صرفه هرگونه زمان و هزینه بهتر از مسئله اصلی از هارد است. برای تشخیص مشکلات IO هارد، باید مراحل زیر را پیش ببرید.
ابتدا وارد سرور شده و دستور top را اجرا کنید. این ابزار به شما نشان میدهد که آیا CPU درگیر تکمیل عملیات هارد است یا خیر. در آمار فرایندهای در حال اجرا در سرور، مقدار wa در ردیف CPU%، نشانگر مدتزمان انتظار CPU برای تکمیل IO است. درصورتیکه این مقدار از 1% بیشتر باشد مشکلی وجود دارد.
برای بررسی آمار دقیق IO دستور زیر را اجرا کنید.
vmstat 1 10
این دستور آماری دقیق از CPU، IO و حافظه را نمایش میدهد. اگر اعداد در ستون IO بالاتر از ردیف وسط باشد، نشاندهنده فشار بالا بر سیستم است.
برای شناسایی هارد تحتفشار دستور زیر را اجرا کنید.
iostat -md
این دستور آمار دقیق را بر اساس مگابایت بر ثانیه به شما نشان میدهد. اگر حجم دادههای ارائهشده در ثانیه بالا باشد، احتمالاً مشکلی وجود دارد.
برای یافتن نقطه اتصال سیستم از دستور زیر استفاده کنید.
lsblk
این دستور مشخص میکند که هر دستگاه به کدام بخش از سیستم متصل است. درصورتیکه سرور به چند دستگاه متصل باشد، این دستور به شما کمک میکند تا بفهمید مشکل دقیقاً از کجا نشئت میگیرد.
راههای رفع خطای IO هارد
پس از شناسایی مشکل، حال زمان رفع آن رسیده است. برای این کار چند مسیر را میتوانید دنبال کنید.
فعالکردن write caching
write caching دادهها را در حافظه رم ذخیره کرده و سپس به هارد میفرستد. البته باید توجه داشته باشید که در صورت قطعی برق امکان ازدسترفتن دادهها در این روش وجود دارد.
برای فعالکردن این قابلیت ابتدا به کمک دستور زیر ابزار hdparm را نصب کنید.
yum install hdparm
سپس دستور زیر را اجرا کنید. توجه داشته باشید بهجای عبارت dev/sda/ مسیر هارد موردنظر را قرار دهید.
hdparm -W1 /dev/sda
برای غیرفعالکردن آن نیز از دستور زیر استفاده کنید:
hdparm -W0 /dev/sda
فعالکردن DMA یا همان Direct Memory Access
DMA به اجزای سرور اجازه دسترسی مستقیم به رم را میدهد و میتواند سرعت هارد را افزایش دهد. برای فعالکردن آن از دستور زیر استفاده کنید:
hdparm -d1 /dev/hda
برای غیرفعالکردنش نیز دستور زیر را اجرا کنید:
hdparm -d0 /dev/hda
ارتقای سختافزاری سرور
اگر تنظیمات داخلی مشکل را حل نکرد، میتوانید از تغییرات سختافزاری نیز بهره ببرید. این تغییرات شامل موارد زیر میشود:
- ارتقای هارد
- تقسیم بار بین چند هارد
- افزایش حافظه
- اطمینان از سلامت RAID
سخن پایانی
تشخیص خطای IO هارد و یافتن دلیل آن میتواند فرایندی پیچیده باشد، اما با انجام مراحلی که برایتان توضیح دادهایم میتوانید بهسرعت و آسانی مشخص کنید کدام بخشها تحتتأثیر قرار گرفتهاند و مشکلات آنها را حل کنید.