| IOSTAT(1) | Linux User's Manual | IOSTAT(1) |
نام (NAME)
iostat - گزارش آمار واحد پردازش مرکزی (CPU) و آمار ورودی/خروجی دستگاهها و پارتیشنها
خلاصه دستور (SYNOPSIS)
iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -s ] [ -t ] [ -U ] [ -V ] [ -x ] [ -y ] [ -z ] [ --compact ] [ --dec={ 0 | 1 | 2 } ] [ { -f | +f } directory ] [ -j { ID | LABEL | PATH | UUID | ... } ] [ -o JSON ] [ [ -H ] -g group_name ] [ --human ] [ --pretty ] [ -p [ device[,...] | ALL ] ] [ device [...] | ALL ] [ interval [ count ] ]
توضیحات (DESCRIPTION)
دستور iostat برای نظارت بر بار ورودی/خروجی دستگاههای سیستم با مشاهده مدتزمانی که دستگاهها نسبت به میانگین نرخ انتقال خود فعال هستند، استفاده میشود. دستور iostat گزارشهایی تولید میکند که میتوان از آنها برای تغییر پیکربندی سیستم جهت توزیع و متعادلسازی بهتر بار ورودی/خروجی بین دیسکهای فیزیکی استفاده کرد.
اولین گزارش تولیدشده توسط دستور iostat آمارهای مربوط به زمان سپریشده از هنگام بالا آمدن (بوت) سیستم را ارائه میدهد، مگر اینکه از گزینه -y استفاده شود (در این صورت، گزارش نخست حذف میشود). هر گزارش بعدی، بازه زمانی پس از گزارش قبلی را پوشش میدهد. تمام آمارها در هر بار اجرای دستور iostat گزارش میشوند. این گزارش شامل یک سطر سربرگ CPU و به دنبال آن یک سطر از آمارهای CPU است. در سیستمهای چندپردازندهای، آمارهای CPU در سطح کل سیستم به عنوان میانگین تمام پردازندهها محاسبه میشوند. همچنین یک سطر سربرگ دستگاهها نمایش داده میشود و پس از آن برای هر دستگاهِ پیکربندیشده، یک خط آمار درج میگردد.
پارامتر interval فاصله زمانی بر حسب ثانیه را بین هر گزارش مشخص میکند. پارامتر count میتواند همراه با پارامتر interval مشخص شود. اگر پارامتر count تعیین گردد، مقدار آن بیانگر تعداد گزارشهای تولیدشده در فواصل زمانی interval ثانیهای خواهد بود. اگر پارامتر interval بدون پارامتر count مشخص شود، دستور iostat گزارشها را به صورت مداوم تولید میکند.
گزارشها (REPORTS)
دستور iostat دو نوع گزارش تولید میکند: گزارش مصرف پردازنده (CPU Utilization report) و گزارش مصرف دستگاه (Device Utilization report).
- گزارش مصرف پردازنده (CPU Utilization Report)
- نخستین گزارش تولیدشده توسط دستور iostat گزارش مصرف پردازنده است. در سیستمهای چندپردازندهای، مقادیر CPU میانگینهای سراسری بین تمام پردازندهها هستند. این گزارش دارای قالب زیر است:
- %user
- درصد مصرف پردازنده در زمان اجرا در سطح کاربر (برنامهها) را نمایش میدهد.
- %nice
- درصد مصرف پردازنده در زمان اجرا در سطح کاربر با اولویت nice را نمایش میدهد.
- %system
- درصد مصرف پردازنده در زمان اجرا در سطح سیستم (هسته/کرنل) را نمایش میدهد.
- %iowait
- درصد زمانی را نمایش میدهد که در طول آن پردازنده یا پردازندهها بیکار بودند در حالی که سیستم یک درخواست معوق ورودی/خروجی دیسک داشت.
- %steal
- درصد زمانی را نمایش میدهد که پردازنده یا پردازندههای مجازی در حالی که هایپروایزر در حال سرویسدهی به یک پردازنده مجازی دیگر بود، به اجبار در حالت انتظار سپری کردند.
- %idle
- درصد زمانی را نمایش میدهد که پردازنده یا پردازندهها بیکار بودند و سیستم هیچ درخواست معوق ورودی/خروجی دیسکی نداشت.
- گزارش مصرف دستگاه (Device Utilization Report)
- دومین گزارش تولیدشده توسط دستور iostat گزارش مصرف دستگاه است. گزارش دستگاه، آمارها را بر پایه هر دستگاه فیزیکی یا پارتیشن ارائه میدهد. دستگاههای بلوکی و پارتیشنهایی که آمار آنها باید نمایش داده شود را میتوان در خط فرمان وارد کرد. اگر هیچ دستگاه یا پارتیشنی وارد نشود، آمار برای هر دستگاهی که توسط سیستم استفاده شده است، به شرطی که هسته آمار آن را نگهداری کند، نمایش داده میشود. اگر کلمه کلیدی ALL در خط فرمان مشخص شود، آمار برای تمام دستگاههای تعریفشده در سیستم، شامل مواردی که هرگز استفاده نشدهاند، نمایش داده میشود. نرخهای انتقال به طور پیشفرض بر حسب بلوکهای ۱۰۲۴ بایتی نمایش داده میشوند، مگر اینکه متغیر محیطی POSIXLY_CORRECT تنظیم شده باشد، که در این حالت از بلوکهای ۵۱۲ بایتی استفاده میشود. بسته به گزینههای مورد استفاده (مانند -x، -s و -k یا -m)، این گزارش ممکن است فیلدهای زیر را نمایش دهد:
- Device:
- این ستون نام دستگاه (یا پارتیشن) را مطابق با نام فهرستشده در دایرکتوری /dev نمایش میدهد.
- tps
- تعداد انتقالها در ثانیه را که به دستگاه ارسال شده است نشان میدهد. یک انتقال در واقع یک درخواست ورودی/خروجی (I/O) به دستگاه است. چندین درخواست منطقی را میتوان در قالب یک درخواست ورودی/خروجی واحد به دستگاه ترکیب کرد. اندازه یک انتقال نامشخص است.
- Blk_read/s (kB_read/s, MB_read/s)
- میزان داده خواندهشده از دستگاه را بر حسب تعداد بلوکها (کیبیبایت، مبیبایت) در ثانیه نشان میدهد. بلوکها معادل سکتورها هستند و بنابراین اندازه ۵۱۲ بایتی دارند.
- Blk_wrtn/s (kB_wrtn/s, MB_wrtn/s)
- میزان داده نوشتهشده روی دستگاه را بر حسب تعداد بلوکها (کیبیبایت، مبیبایت) در ثانیه نشان میدهد.
- Blk_dscd/s (kB_dscd/s, MB_dscd/s)
- میزان داده دورریختهشده (discard) برای دستگاه را بر حسب تعداد بلوکها (کیبیبایت، مبیبایت) در ثانیه نشان میدهد.
- Blk_w+d/s (kB_w+d/s, MB_w+d/s)
- میزان داده نوشتهشده یا دورریختهشده برای دستگاه را بر حسب تعداد بلوکها (کیبیبایت، مبیبایت) در ثانیه نشان میدهد.
- Blk_read (kB_read, MB_read)
- تعداد کل بلوکها (کیبیبایت، مبیبایت) خواندهشده.
- Blk_wrtn (kB_wrtn, MB_wrtn)
- تعداد کل بلوکها (کیبیبایت، مبیبایت) نوشتهشده.
- Blk_dscd (kB_dscd, MB_dscd)
- تعداد کل بلوکها (کیبیبایت، مبیبایت) دورریختهشده.
- Blk_w+d (kB_w+d, MB_w+d)
- تعداد کل بلوکها (کیبیبایت، مبیبایت) نوشتهشده یا دورریختهشده.
- r/s
- تعداد درخواستهای خواندن تکمیلشده در ثانیه برای دستگاه (پس از ادغامها).
- w/s
- تعداد درخواستهای نوشتن تکمیلشده در ثانیه برای دستگاه (پس از ادغامها).
- d/s
- تعداد درخواستهای دورریزی (discard) تکمیلشده در ثانیه برای دستگاه (پس از ادغامها).
- f/s
- تعداد درخواستهای فلاش (flush / تخلیه بافر به دیسک) تکمیلشده در ثانیه برای دستگاه (پس از ادغامها). این شمارش، درخواستهای فلاش اجراشده توسط دیسکها را در بر میگیرد. درخواستهای فلاش برای پارتیشنها ردیابی نمیشوند. پیش از ادغام، عملیاتهای فلاش به عنوان نوشتن محاسبه میشوند.
- sec/s (kB/s, MB/s)
- تعداد سکتورها (کیبیبایت، مبیبایت) خواندهشده، نوشتهشده یا دورریختهشده برای دستگاه در هر ثانیه.
- rsec/s (rkB/s, rMB/s)
- تعداد سکتورها (کیبیبایت، مبیبایت) خواندهشده از دستگاه در هر ثانیه.
- wsec/s (wkB/s, wMB/s)
- تعداد سکتورها (کیبیبایت، مبیبایت) نوشتهشده روی دستگاه در هر ثانیه.
- dsec/s (dkB/s, dMB/s)
- تعداد سکتورها (کیبیبایت، مبیبایت) دورریختهشده برای دستگاه در هر ثانیه.
- rqm/s
- تعداد درخواستهای ورودی/خروجی ادغامشده در ثانیه که در صف دستگاه قرار گرفته بودند.
- rrqm/s
- تعداد درخواستهای خواندن ادغامشده در ثانیه که در صف دستگاه قرار گرفته بودند.
- wrqm/s
- تعداد درخواستهای نوشتن ادغامشده در ثانیه که در صف دستگاه قرار گرفته بودند.
- drqm/s
- تعداد درخواستهای دورریزی ادغامشده در ثانیه که در صف دستگاه قرار گرفته بودند.
- %rrqm
- درصد درخواستهای خواندن که پیش از ارسال به دستگاه با یکدیگر ادغام شدهاند.
- %wrqm
- درصد درخواستهای نوشتن که پیش از ارسال به دستگاه با یکدیگر ادغام شدهاند.
- %drqm
- درصد درخواستهای دورریزی که پیش از ارسال به دستگاه با یکدیگر ادغام شدهاند.
- areq-sz
- میانگین
اندازه (بر
حسب
کیبیبایت)
درخواستهای
ورودی/خروجی
ارسالشده
به دستگاه.
نکته: در نسخههای پیشین، این فیلد با نام avgrq-sz شناخته میشد و بر حسب سکتور بیان میگردید. - rareq-sz
- میانگین اندازه (بر حسب کیبیبایت) درخواستهای خواندن ارسالشده به دستگاه.
- wareq-sz
- میانگین اندازه (بر حسب کیبیبایت) درخواستهای نوشتن ارسالشده به دستگاه.
- dareq-sz
- میانگین اندازه (بر حسب کیبیبایت) درخواستهای دورریزی ارسالشده به دستگاه.
- await
- میانگین زمان (بر حسب میلیثانیه) برای سرویسدهی به درخواستهای ورودی/خروجی ارسالشده به دستگاه. این مقدار شامل زمان سپریشده توسط درخواستها در صف و زمان صرفشده برای پاسخدهی به آنها است.
- r_await
- میانگین زمان (بر حسب میلیثانیه) برای سرویسدهی به درخواستهای خواندن ارسالشده به دستگاه. این مقدار شامل زمان سپریشده توسط درخواستها در صف و زمان صرفشده برای پاسخدهی به آنها است.
- w_await
- میانگین زمان (بر حسب میلیثانیه) برای سرویسدهی به درخواستهای نوشتن ارسالشده به دستگاه. این مقدار شامل زمان سپریشده توسط درخواستها در صف و زمان صرفشده برای پاسخدهی به آنها است.
- d_await
- میانگین زمان (بر حسب میلیثانیه) برای سرویسدهی به درخواستهای دورریزی ارسالشده به دستگاه. این مقدار شامل زمان سپریشده توسط درخواستها در صف و زمان صرفشده برای پاسخدهی به آنها است.
- f_await
- میانگین زمان (بر حسب میلیثانیه) برای سرویسدهی به درخواستهای فلاش ارسالشده به دستگاه. لایه بلوکی درخواستهای فلاش را با یکدیگر ترکیب کرده و در هر لحظه حداکثر یکی را اجرا میکند. بنابراین عملیات فلاش میتواند تا دو برابر طول بکشد: انتظار برای درخواست فلاش جاری، سپس اجرای آن و بعد انتظار برای درخواست بعدی.
- aqu-sz
- میانگین
طول صف
درخواستهای
ارسالشده
به دستگاه.
نکته: در نسخههای پیشین، این فیلد با نام avgqu-sz شناخته میشد. - %util
- درصد زمان سپریشدهای که در طول آن درخواستهای ورودی/خروجی به دستگاه ارسال شدهاند (بهرهوری پهنای باند برای دستگاه). اشباع دستگاه زمانی رخ میدهد که این مقدار برای دستگاههایی که درخواستها را به صورت متوالی سرویس میدهند نزدیک به ۱۰۰٪ باشد. اما برای دستگاههایی که به درخواستها به صورت موازی پاسخ میدهند، مانند آرایههای RAID و SSDهای امروزی، این عدد نشاندهنده محدودیتهای عملکردی آنها نیست.
گزینهها (OPTIONS)
- -c
- نمایش گزارش مصرف پردازنده (CPU).
- --compact
- گزارش مصرف دستگاه را به زیرگزارشها تقسیم نمیکند تا تمام معیارها در یک خط نمایش داده شوند.
- -d
- نمایش گزارش مصرف دستگاه.
- --dec={ 0 | 1 | 2 }
- مشخص کردن تعداد ارقام اعشار مورد استفاده (از ۰ تا ۲، مقدار پیشفرض ۲ است).
- -f directory
+f directory
پارامتر directory دایرکتوری حاوی فایلهای آماری برای دستگاههای مدیریتشده در فضای کاربری (userspace) است. این دایرکتوری میتواند شامل موارد زیر باشد:
- یک فایل
"diskstats" که قالب
آن با فایل
موجود در "/proc"
سازگار
است،
- آمارهای
دستگاههای
منفرد
موجود در
فایلهایی
که قالب
آنها با
فایلهای
واقع در "/sys"
سازگار
است.
بهویژه، فایلهای زیر واقع در directory ممکن است توسط iostat استفاده شوند:
directory/block/device/stat
directory/block/device/partition/stat
فایلهای partition باید یک مدخل در دایرکتوری directory/dev/block/ داشته باشند، مانند:
directory/dev/block/major:minor --> ../../block/device/partition
- -g group_name { device [...] | ALL }
- نمایش آمار برای گروهی از دستگاهها. دستور iostat ابتدا آمار را برای هر دستگاه مجزا در فهرست گزارش کرده و سپس یک سطر از آمارهای سراسری برای گروه به نام group_name متشکل از تمام دستگاههای فهرست ارائه میدهد. کلمه کلیدی ALL به این معنی است که تمام دستگاههای بلوکی تعریفشده توسط سیستم باید در گروه قرار گیرند.
- -H
- این گزینه باید به همراه گزینه -g استفاده شود و مشخص میکند که تنها آمارهای سراسری برای گروه نمایش داده شوند، نه آمارهای مربوط به تکتک دستگاههای موجود در آن گروه.
- -h
- این گزینه معادل تعیین --human --pretty است.
- --human
- چاپ اندازهها در قالبی خوانا برای انسان (مانند 1.0k، 1.2M و غیره). واحدهای نمایشدادهشده با این گزینه بر هر واحد پیشفرض دیگری (مانند کیبیبایت، سکتور و...) که به این معیارها وابسته است اولویت دارند.
- -j { ID | LABEL | PATH | UUID | ... } [ device [...] | ALL ]
- نمایش نامهای ماندگار دستگاه. کلمات کلیدی ID، LABEL، PATH، UUID و غیره نوع نام ماندگار را تعیین میکنند. این کلمات کلیدی محدود نیستند و تنها پیشنیاز این است که دایرکتوری با نامهای ماندگار مورد نیاز در /dev/disk موجود باشد. به صورت اختیاری، میتوان چند دستگاه را در نوع نام ماندگار انتخابی مشخص کرد. از آنجا که نامهای ماندگار دستگاه معمولاً طولانی هستند، گزینه --pretty به صورت ضمنی همراه با این گزینه تنظیم میشود.
- -k
- نمایش آمارها بر حسب کیبیبایت در ثانیه.
- -m
- نمایش آمارها بر حسب مبیبایت در ثانیه.
- -N
- نمایش نامهای ثبتشده نگاشتکننده دستگاه (device mapper) برای دستگاههای دیوایس مپر. برای مشاهده آمارهای LVM2 کاربرد دارد.
- -o JSON
- نمایش آمارها در قالب JSON (JavaScript Object Notation). ترتیب فیلدهای خروجی JSON تعریفنشده است و ممکن است در آینده فیلدهای جدیدی اضافه شوند.
- -p [ { device[,...] | ALL } ]
- نمایش آمار برای دستگاههای بلوکی و تمام پارتیشنهای آنها که توسط سیستم استفاده میشوند. اگر نام دستگاهی در خط فرمان وارد شود، آمار آن و تمام پارتیشنهایش نمایش داده میشود. در نهایت، کلمه کلیدی ALL مشخص میکند که آمار باید برای تمام دستگاههای بلوکی و پارتیشنهای تعریفشده در سیستم، شامل مواردی که هرگز استفاده نشدهاند، نمایش یابد. اگر گزینه -j پیش از این گزینه تعریف شده باشد، دستگاههای واردشده در خط فرمان را میتوان با نوع نام ماندگار برگزیده تعیین کرد.
- --pretty
- خواناتر کردن گزارش مصرف دستگاه برای انسان. نام دستگاه در سمت راست چاپ خواهد شد. همچنین در صورت وجود معیارهای متعدد برای نمایش، گزارش ممکن است به زیرگزارشها تقسیم شود (برای جلوگیری از این حالت از گزینه --compact استفاده کنید).
- -s
- نمایش نسخه کوتاه (باریک) گزارش برای جا شدن در صفحهنمایشهای با عرض ۸۰ کاراکتر.
- -t
- چاپ زمان برای هر گزارش نمایشدادهشده. قالب برچسب زمانی ممکن است به مقدار متغیر محیطی S_TIME_FORMAT (به زیر مراجعه کنید) و استفاده از گزینه -U بستگی داشته باشد.
- -U
- نمایش برچسب زمانی (UTC - ساعت هماهنگ جهانی) بر حسب ثانیه از مبدا زمان (Epoch).
- -V
- چاپ شماره نسخه و سپس خروج.
- -x
- نمایش آمارهای تفصیلی و گسترده (extended statistics).
- -y
- صرفنظر کردن از نخستین گزارش حاوی آمارهای پس از بوت سیستم، هنگام نمایش چند رکورد در بازه زمانی معین.
- -z
- به iostat اعلام میکند که از خروجی هر دستگاهی که در طول دوره نمونهبرداری فعالیتی نداشته است صرفنظر کند.
محیط (ENVIRONMENT)
دستور iostat متغیرهای محیطی زیر را مد نظر قرار میدهد:
- POSIXLY_CORRECT
- هنگامی که این متغیر تنظیم شده باشد، نرخهای انتقال به جای بلوکهای پیشفرض ۱۰۲۴ بایتی، در بلوکهای ۵۱۲ بایتی نمایش داده میشوند.
- S_COLORS
- به طور
پیشفرض
زمانی که
خروجی به یک
ترمینال
متصل باشد،
آمارها به
صورت رنگی
نمایش داده
میشوند. از
این متغیر
برای تغییر
این
تنظیمات
استفاده
کنید.
مقادیر
ممکن برای
این متغیر
عبارتند از
never، always یا auto
(مورد اخیر
معادل
تنظیمات
پیشفرض
است).
لطفاً توجه داشته باشید که رنگ استفادهشده (قرمز، زرد یا هر رنگ دیگر) برای نمایش یک مقدار، صرفاً به دلیل رنگ آن بیانگر هیچ مشکلی نیست؛ بلکه تنها بازههای مختلف مقادیر را نشان میدهد. - S_COLORS_SGR
- رنگها و سایر مشخصههای مورد استفاده برای نمایش آمارها در ترمینال را تعیین میکند. مقدار آن فهرستی از قابلیتها است که با دو نقطه از هم جدا شدهاند و به طور پیشفرض برابر با I=32;22:N=34;1:W=35;1:X=31;1:Z=34;22 است. قابلیتهای پشتیبانیشده عبارتند از:
- I=
- زیررشته SGR (Select Graphic Rendition) برای نامهای دستگاه.
- N=
- زیررشته SGR برای مقادیر آماری غیرصفر.
- W= (یا M=)
- زیررشته SGR برای مقادیر درصدی در بازه ۷۵٪ تا ۹۰٪ (یا در بازه ۱۰٪ تا ۲۵٪ بسته به مفهوم معیار).
- X= (یا H=)
- زیررشته SGR برای مقادیر درصدی بزرگتر یا مساوی ۹۰٪ (یا کوچکتر یا مساوی ۱۰٪ بسته به مفهوم معیار).
- Z=
- زیررشته SGR برای مقادیر صفر.
- S_TIME_FORMAT
- اگر این متغیر وجود داشته باشد و مقدار آن ISO باشد، هنگام چاپ تاریخ در سربرگ گزارش، محلیسازی فعلی (locale) نادیده گرفته میشود. در این حالت دستور iostat از قالب ISO 8601 (YYYY-MM-DD) استفاده خواهد کرد. برچسب زمانی نمایشدادهشده با گزینه -t نیز مطابق با قالب ISO 8601 خواهد بود.
مثالها (EXAMPLES)
- iostat
- نمایش یک گزارش واحد از تاریخچه پس از بوت برای تمام پردازندهها و دستگاهها.
- iostat -d 2
- نمایش مداوم گزارش دستگاه در فواصل زمانی دو ثانیهای.
- iostat -d 2 6
- نمایش شش گزارش در فواصل زمانی دو ثانیهای برای تمام دستگاهها.
- iostat -x sda sdb 2 6
- نمایش شش گزارش از آمارهای گسترده در فواصل زمانی دو ثانیهای برای دستگاههای sda و sdb.
- iostat -p sda 2 6
- نمایش شش گزارش در فواصل زمانی دو ثانیهای برای دستگاه sda و تمام پارتیشنهای آن (sda1 و غیره).
اشکالات (BUGS)
سیستمفایل /proc برای کارکرد iostat باید سوار (mount) شده باشد.
هستههای قدیمیتر از 2.6.x دیگر پشتیبانی نمیشوند.
اگرچه iostat واحدهای متناظر با کیلوبایت (kB)، مگابایت (MB)... را نمایش میدهد، اما در واقع از کیبیبایت (kiB)، مبیبایت (MiB)... استفاده میکند. هر کیبیبایت برابر با ۱۰۲۴ بایت، و هر مبیبایت برابر با ۱۰۲۴ کیبیبایت است.
فایلها (FILES)
فایل /proc/stat
شامل
آمارهای
سیستم است.
فایل /proc/uptime
شامل
آپتایم
سیستم است.
فایل /proc/diskstats
شامل
آمارهای
دیسکها
است.
دایرکتوری
/sys شامل
آمارهای
دستگاههای
بلوکی است.
فایل /proc/self/mountstats
شامل
آمارهای
سیستمفایلهای
شبکهای
است.
دایرکتوری
/dev/disk شامل
نامهای
ماندگار
دستگاهها
است.
نویسنده (AUTHOR)
Sebastien Godard (sysstat <at> orange.fr)
همچنین ببینید (SEE ALSO)
sar(1), pidstat(1), mpstat(1), vmstat(8), tapestat(1), nfsiostat(1), cifsiostat(1)
https://github.com/sysstat/sysstat
https://sysstat.github.io
| JULY 2025 | Linux |