۷ ابزار برای مانیتورینگ و دیباگ عملکرد Disk I/O در لینوکس

مانیتورینگ و دیباگ عملکرد Disk I/O در لینوکس

یکی از معیارهای کلیدی عملکرد در سرورهای لینوکس، فعالیت دیسک (I/O) است. این شاخص تاثیر مستقیمی بر سرعت ذخیره‌سازی و بازیابی فایل‌ها و داده‌ها دارد، به‌ویژه در سرورهای دیتابیس که عملکرد دیسک می‌تواند مستقیم بر سرعت سرویس‌ها و اپلیکیشن‌ها اثر بگذارد.

 

۱. iostat – نمایش آمار ورودی و خروجی دستگاه‌ها

iostat یکی از ابزارهای پایش سیستم مبتنی بر خط فرمان است که در بسته‌ sysstat قرار دارد و برای گزارش‌گیری از آمار پردازنده (CPU) و آمار I/O مربوط به بلاک‌ها و پارتیشن‌ها مورد استفاده قرار می‌گیرد. این ابزار به‌طور گسترده برای تحلیل عملکرد دیسک و بررسی وضعیت بار سیستم در محیط‌های لینوکسی کاربرد دارد.

برای استفاده از iostat در سرور لینوکس، ابتدا باید بسته‌ی sysstat را با توجه به توزیع خود نصب کنید:

sudo apt install sysstat [On Debian, Ubuntu and Mint]
sudo yum install sysstat [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a app-admin/sysstat [On Gentoo Linux]
sudo apk add sysstat [On Alpine Linux]
sudo pacman -S sysstat [On Arch Linux]
sudo zypper install sysstat [On OpenSUSE] 

برای نمایش یک گزارش ساده از میزان استفاده دستگاه‌ها، دستور iostat را با گزینه‌ی خط فرمان -d اجرا کنید. معمولاً اولین گزارش شامل آمار مربوط به بازه زمانی از زمان راه‌اندازی سیستم (Boot Time) خواهد بود و گزارش‌های بعدی به بازه زمانی بین اجرای فعلی و اجرای قبلی دستور اختصاص دارند.

برای دریافت گزارش پیشرفته‌تر و مشاهده جزئیات بیشتر، می‌توانید از گزینه‌ی -x استفاده کنید. همچنین با فعال‌سازی گزینه‌ی -t، زمان هر گزارش نیز در خروجی نمایش داده می‌شود. علاوه بر این، در صورتی که بخواهید دستگاه‌هایی که هیچ فعالیتی ندارند در گزارش نمایش داده نشوند، می‌توانید گزینه‌ی -z را به دستور اضافه کنید تا خروجی تنها شامل دستگاه‌های فعال باشد.

iostat -d -t 
OR
iostat -d -x -t 

برای نمایش آمار بر حسب کیلوبایت بر ثانیه به‌جای بلوک بر ثانیه، می‌توانید از گزینه‌ی -k استفاده کنید؛ همچنین گزینه‌ی -m برای نمایش آمار بر حسب مگابایت بر ثانیه کاربرد دارد:

iostat -d -k
OR
iostat -d -m

iostat همچنین امکان نمایش گزارش‌های پیوسته در بازه‌های زمانی مشخص را فراهم می‌کند. برای مثال، دستور زیر گزارش‌ها را هر دو ثانیه یک‌بار نمایش می‌دهد:

iostat -d 2

در ادامه، می‌توانید تعداد مشخصی از گزارش‌ها را در بازه‌ی زمانی تعیین‌شده مشاهده کنید. دستور زیر ۱۰ گزارش با فاصله‌ی دو ثانیه تولید می‌کند:

iostat -d 2 10

همچنین امکان ذخیره خروجی برای تحلیل‌های بعدی وجود دارد:

</pre>
iostat -d 2 10 &gt; disk_io_report.txt &amp;
<pre>

برای کسب اطلاعات بیشتر درباره ستون‌های گزارش و جزئیات خروجی، می‌توانید راهنمای رسمی دستور را مطالعه کنید:

man iostat

۲. sar – نمایش فعالیت سیستم در لینوکس

ابزار sar یکی دیگر از ابزارهای کاربردی موجود در بسته‌ی sysstat است که برای جمع‌آوری، گزارش‌گیری و ذخیره‌سازی اطلاعات مربوط به فعالیت سیستم مورد استفاده قرار می‌گیرد. این ابزار امکان تحلیل عملکرد سیستم در بازه‌های زمانی مختلف را فراهم می‌کند. پیش از استفاده از آن، لازم است تنظیمات اولیه انجام شود.

ابتدا باید قابلیت جمع‌آوری داده در فایل پیکربندی زیر فعال شود:

sudo vi /etc/default/sysstat
OR
sudo nano /etc/default/sysstat

در این فایل، خط زیر را پیدا کرده و مقدار آن را مطابق زیر به true تغییر دهید:

ENABLED="true"

به‌صورت پیشفرض، داده‌ها هر ۱۰ دقیقه جمع‌آوری می‌شوند. در صورت نیاز می‌توانید این بازه را به ۲ دقیقه کاهش دهید.

برای این کار فایل زیر را ویرایش کنید:

sudo vi /etc/cron.d/sysstat
OR
sudo nano /etc/cron.d/sysstat

پس از اعمال تغییرات، فایل را ذخیره کرده و ببندید.

در ادامه، سرویس مربوط به sysstat را فعال و اجرا کنید:

systemctl enable --now sysstat.service
systemctl start sysstat.service

پس از گذشت حدود ۲ دقیقه، می‌توانید گزارش‌های sar را مشاهده کنید.

برای نمایش آمار مربوط به I/O و نرخ انتقال داده‌ها از گزینه‌ی -b استفاده کنید و برای مشاهده فعالیت هر بلاک‌دستگاه از گزینه‌ی -d بهره ببرید:

sar -d -b

۳. iotop – پایش مصرف دیسک I/O بر اساس فرآیند

iotop ابزاری خط فرمانی است که از نظر طراحی مشابه ابزار مانیتورینگ top عمل می‌کند، با این تفاوت که فعالیت ورودی و خروجی دیسک را به‌صورت بر اساس هر فرآیند (Per-Process) نمایش می‌دهد. این ابزار برای تحلیل دقیق مصرف I/O و شناسایی فرآیندهایی که بیشترین فشار را بر دیسک وارد می‌کنند بسیار کاربردی است.

برای نصب این ابزار، دستور مناسب با توجه به توزیع لینوکس خود را اجرا کنید:

sudo apt install iotop [On Debian, Ubuntu and Mint]
sudo yum install iotop [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-process/iotop [On Gentoo Linux]
sudo apk add iotop [On Alpine Linux]
sudo pacman -S iotop [On Arch Linux]
sudo zypper install iotop [On OpenSUSE] 

برای پایش مصرف I/O فرآیندها، می‌توانید ابزار را بدون هیچ آرگومانی اجرا کنید:

iotop

به‌صورت پیش‌فرض، فاصله زمانی بین هر به‌روزرسانی یک ثانیه است. در صورت نیاز می‌توانید این بازه را با گزینه‌ی -d تغییر دهید:

iotop -d 2

به‌طور پیش‌فرض، iotop تمام threadهای یک فرآیند را نمایش می‌دهد. اگر بخواهید فقط خود فرآیندها نمایش داده شوند، از گزینه‌ی -P استفاده کنید:

iotop -P

با استفاده از گزینه‌ی -a می‌توانید به‌جای نمایش پهنای باند لحظه‌ای، میزان مصرف تجمعی I/O را مشاهده کنید. در این حالت، iotop میزان I/O انجام‌شده توسط فرآیندها را از زمان اجرای ابزار تا لحظه فعلی نمایش می‌دهد:

iotop -P -a

۴. dstat – نمایش جامع و لحظه‌ای وضعیت منابع سیستم

بتوسعه ابزار dstat به‌صورت رسمی توسط توسعه‌دهنده اصلی آن متوقف شده است. به دلیل اقداماتی که توسط RedHat در زمینه ثبت و کنترل نام پروژه انجام شد، نگهدارنده اصلی توسعه این ابزار را متوقف کرده و توصیه می‌کند از پروژه جایگزین و فعال dool استفاده شود.
dool کاملا با دستورات dstat سازگار است و در عین حال همچنان به‌صورت فعال توسعه و پشتیبانی می‌شود.

اگرچه استفاده از dstat همچنان در بسیاری از سیستم‌ها امکان‌پذیر است، اما برای استفاده بلندمدت و دریافت به‌روزرسانی‌های پایدار، مهاجرت به dool توصیه می‌شود.

dstat یک ابزار قدرتمند و جامع برای پایش لحظه‌ای منابع سیستم است که به‌عنوان جایگزینی کامل برای ابزارهایی مانند vmstat، iostat و netstat عمل می‌کند. این ابزار اطلاعات مربوط به CPU، دیسک، حافظه و شبکه را در یک خروجی یکپارچه و رنگ‌بندی‌شده نمایش می‌دهد.

برای نصب، از دستور مناسب توزیع لینوکس خود استفاده کنید:

sudo apt install dstat # On Debian, Ubuntu, and Mint
sudo yum install dstat # On RHEL, CentOS, Fedora, Rocky Linux, AlmaLinux
sudo emerge -a sys-process/dstat # On Gentoo Linux
sudo apk add dstat # On Alpine Linux
sudo pacman -S dstat # On Arch Linux
sudo zypper install dstat # On OpenSUSE

اجرای ساده ابزار (شامل نمایش CPU، دیسک و شبکه):

dstat

تمرکز فقط روی فعالیت دیسک

dstat -d

برای نمایش همزمان CPU، حافظه و دیسک:

dstat -cdm

ذخیره خروجی برای تحلیل بعدی (فرمت CSV)

dstat -cdm --output system_stats.csv

در مجموع، dstat ابزاری منعطف و کاربردی برای مشاهده سریع و جامع وضعیت سیستم در لحظه است؛ با این حال، استفاده از dool به‌عنوان نسخه فعال و پشتیبانی‌شده‌تر برای پروژه‌های جدید توصیه می‌شود.

اگر به دنبال یک راهکار میزبانی قدرتمند هستید، سرور مجازی پارسدو با امکان انتخاب سیستم‌عامل دلخواه و تحویل آنی در ایران، فرانسه، آلمان، هلند و آمریکا، انتخابی هوشمندانه است.

۵. dool – جانشین مدرن dstat

dool یک فورک فعال و در حال نگهداری از ابزار dstat است که پس از متوقف شدن پروژه اصلی dstat ایجاد شد. این ابزار با حفظ سازگاری صددرصدی با دستورات dstat، امکانات جدید و اصلاح باگ‌های موجود را نیز به آن اضافه کرده است.

به‌عبارت دیگر، dool (ابزار سازگار با dstat) گزینه پیشنهادی برای استقرارهای جدید محسوب می‌شود و همان قابلیت‌های قدرتمند مانیتورینگ بلادرنگ سیستم را که در dstat تجربه کرده‌اید، در اختیار شما قرار می‌دهد؛ با این تفاوت که به‌روز و پشتیبانی‌شده است.

در اغلب توزیع‌های مدرن لینوکس، می‌توانید dool را مستقیم از سورس نصب کنید:

git clone https://github.com/scottchiefbaker/dool.git
cd dool
sudo ./install.py

خبر خوب این است که dool دقیقا از همان سینتکس dstat استفاده می‌کند. بنابراین اگر پیش‌تر با dstat کار کرده‌اید، عملا کار با dool را هم بلد هستید و نیازی به یادگیری دستورهای جدید نخواهید داشت.

اجرای ابزار با تنظیمات پیش‌فرض:

dool

تمرکز فقط بر فعالیت دیسک:

dool -d

مانیتور هم‌زمان پردازنده، حافظه و دیسک:

dool -cdm

با استفاده از dool می‌توانید دیدی جامع و لحظه‌ای از عملکرد سیستم خود داشته باشید و بدون تغییر در عادت‌های قبلی، از نسخه‌ای به‌روز و پایدار بهره ببرید.

۶. atop – ابزار پیشرفته مانیتورینگ سیستم و پردازه‌ها

atop را می‌توان نسخه‌ای بسیار پیشرفته‌تر از ابزار top دانست، ابزاری قدرتمند که اطلاعاتی دقیق و تفکیک‌شده از میزان مصرف منابع توسط هر پردازه ارائه می‌دهد. این ابزار مصرف دیسک (Disk I/O)، حافظه، پردازنده و شبکه را به‌صورت جزئی نمایش می‌دهد و برای تحلیل‌های عمیق، به‌ویژه هنگام عیب‌یابی مشکلات کارایی در بازه‌های زمانی مختلف، گزینه‌ای ایده‌آل محسوب می‌شود.

نصب atop در توزیع‌های مختلف لینوکس

می‌توانید atop را با استفاده از مدیر بسته توزیع خود نصب کنید:

sudo apt install atop # On Debian, Ubuntu, and Mint
sudo yum install atop # On RHEL, CentOS, Fedora, Rocky Linux, AlmaLinux
sudo emerge -a sys-process/atop # On Gentoo Linux
sudo apk add atop # On Alpine Linux
sudo pacman -S atop # On Arch Linux
sudo zypper install atop # On OpenSUSE

برای اجرای ابزار:

atop

به‌صورت پیشفرض، اطلاعات هر ۱۰ ثانیه یک‌بار به‌روزرسانی می‌شود. در صورت نیاز می‌توانید بازه زمانی به‌روزرسانی را تغییر دهید. برای مثال، برای به‌روزرسانی هر ۲ ثانیه:

atop 2

یکی از مهمترین ویژگی‌های atop، ثبت خودکار اطلاعات در فایل لاگ است (معمولا در مسیر /var/log/atop/). این قابلیت باعث می‌شود بتوانید عملکرد سیستم را حتی پس از وقوع یک مشکل بررسی کنید.

برای خواندن و تحلیل یک فایل لاگ ذخیره‌شده:

atop -r /var/log/atop/atop_YYYYMMDD

این ویژگی، atop را به ابزاری بسیار ارزشمند برای ردیابی مشکلات کارایی پس از وقوع تبدیل می‌کند، زمانی که دیگر دسترسی به وضعیت لحظه‌ای سیستم ندارید اما نیاز به تحلیل دقیق رفتار آن در گذشته دارید.

۷. iotop-c – جایگزینی سریع و سبک برای iotop

اگرچه ابزار iotop ابزار مفیدی برای مانیتورینگ فعالیت‌های I/O سیستم است، نسخه‌ای جدید به نام iotop-c معرفی شده که با زبان C نوشته شده و نه Python. این موضوع باعث می‌شود iotop-c سرعت بالاتر و مصرف منابع کمتر نسبت به نسخه اصلی داشته باشد.

نصب iotop-c

برای نصب در توزیع‌های مختلف لینوکس، از دستورات زیر استفاده کنید:

sudo apt install iotop-c # On Debian, Ubuntu, and Mint
sudo yum install iotop-c # On RHEL, CentOS, Fedora, Rocky Linux, AlmaLinux
sudo pacman -S iotop-c # On Arch Linux

اجرای iotop-c

برای اجرای ابزار:

iotop-c

iotop-c رابط کاربری مشابه iotop دارد، اما با به‌روزرسانی سریع‌تر و بار پردازشی کمتر، به‌ویژه در سیستم‌هایی که پردازه‌های زیادی در حال انجام عملیات I/O هستند، عملکرد بهتری ارائه می‌دهد.

تمام فلگ‌ها و گزینه‌های آشنا در iotop با همان شیوه در iotop-c نیز قابل استفاده هستند:

iotop-c -P # Show processes only, not threads
iotop-c -a # Show accumulated I/O
iotop-c -d 2 # Update every 2 seconds

با iotop-c می‌توانید همان کارکرد iotop را داشته باشید، اما با سرعت و کارایی بهبود یافته.

جمع‌بندی

در این مطلب با مجموعه‌ای از ابزارهای مانیتورینگ و دیباگ عملکرد Disk I/O در لینوکس آشنا شدیم، از ابزارهای ساده و آشنا مانند dstat و iotop گرفته تا نسخه‌های به‌روز و بهینه مانند dool، atop و iotop-c. این ابزارها امکان رصد منابع سیستم، پردازه‌ها، حافظه، شبکه و I/O را به‌صورت بلادرنگ و حتی با ثبت لاگ برای تحلیل‌های بعدی فراهم می‌کنند. با استفاده از این ابزارها می‌توانید عملکرد سیستم را به‌طور دقیق بررسی کنید، مشکلات کارایی را شناسایی کرده و تصمیمات بهینه برای بهبود آن بگیرید. به‌طور کلی، ترکیب ابزارهای معرفی‌شده، یک بسته جامع برای مدیریت و مانیتورینگ حرفه‌ای سیستم‌های لینوکس فراهم می‌کند.

نوشتن نظر

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *