MPSTAT(1) Linux User's Manual MPSTAT(1)

mpstat - گزارش آمارهای مرتبط با پردازنده‌ها.

mpstat [ -A ] [ --dec={ 0 | 1 | 2 } ] [ -H ] [ -n ] [ -U ] [ -u ] [ -T ] [ -V ] [ -I { keyword[,...] | ALL } ] [ -N { node_list | ALL } ] [ -o JSON ] [ -P { cpu_list | ALL } ] [ interval [ count ] ]

دستور mpstat فعالیت‌های هر پردازندهٔ دردسترس را در خروجی استاندارد می‌نویسد که پردازندهٔ 0 نخستین آن‌ها است. میانگین فعالیت‌های سراسری میان تمامی پردازنده‌ها نیز گزارش می‌شود. دستور mpstat هم بر روی ماشین‌های SMP و هم UP قابل استفاده است، اما در ماشین‌های UP، تنها میانگین فعالیت‌های سراسری چاپ خواهد شد. اگر هیچ فعالیتی انتخاب نشده باشد، گزارش پیش‌فرض همان گزارش میزان مصرف CPU است.

پارامتر interval میزان زمان بر حسب ثانیه را میان هر گزارش مشخص می‌کند. مقدار 0 (یا نبود هیچ پارامتری) مشخص می‌کند که آمارهای پردازنده‌ها برای زمان سپری‌شده از راه‌اندازی سیستم (بوت) گزارش شوند. پارامتر count می‌تواند در ترکیب با پارامتر interval مشخص شود، در صورتی که مقدار interval صفر تنظیم نشده باشد. مقدار count تعداد گزارش‌های تولیدشده به فاصلهٔ interval ثانیه را تعیین می‌کند. اگر پارامتر interval بدون پارامتر count مشخص شود، دستور mpstat گزارش‌ها را به‌صورت پیوسته تولید می‌کند.

این گزینه معادل با مشخص کردن -n -u -I ALL است. این گزینه همچنین شامل تعیین -N ALL -P ALL نیز می‌شود، مگر اینکه این گزینه‌ها به‌طور صریح در خط فرمان مشخص شده باشند.
تعداد ارقام اعشار مورد استفاده را مشخص می‌کند (0 تا 2، مقدار پیش‌فرض 2 است).
همچنین vCPUهایی را که به‌صورت فیزیکی اتصال‌گرم (hotplugged) شده‌اند شناسایی کرده و آمار آن‌ها را نمایش می‌دهد.
گزارش آمار وقفه‌ها (interrupts). کلیدواژه‌های ممکن عبارتند از: CPU، SCPU و SUM.
با کلیدواژهٔ CPU، تعداد هر وقفهٔ مجزای دریافت شده در هر ثانیه توسط CPU یا CPUها نمایش داده می‌شود. وقفه‌ها مواردی هستند که در فایل /proc/interrupts فهرست شده‌اند.

با کلیدواژهٔ SCPU، تعداد هر وقفهٔ نرم‌افزاری مجزای دریافت شده در هر ثانیه توسط CPU یا CPUها نمایش داده می‌شود. این گزینه تنها بر روی کرنل‌های 2.6.31 و جدیدتر کار می‌کند. وقفه‌های نرم‌افزاری مواردی هستند که در فایل /proc/softirqs فهرست شده‌اند.

با کلیدواژهٔ SUM، دستور mpstat تعداد کل وقفه‌ها را به ازای هر پردازنده گزارش می‌دهد. مقادیر زیر نمایش داده می‌شوند:

شمارهٔ پردازنده. کلیدواژهٔ all نشان می‌دهد که آمارها به عنوان میانگین در میان تمامی پردازنده‌ها محاسبه شده‌اند.
تعداد کل وقفه‌های دریافتی در هر ثانیه توسط CPU یا CPUها را نشان می‌دهد.
کلیدواژهٔ ALL معادل مشخص کردن تمامی کلیدواژه‌های بالاست و بنابراین تمامی آمارهای وقفه‌ها نمایش داده می‌شوند.
گره‌های NUMA را که آمارها باید برای آن‌ها گزارش شوند مشخص می‌کند. node_list فهرستی از مقادیر یا بازه‌ای از مقادیر جدا شده با کاما است (مانند 0,2,4-7,12-). توجه داشته باشید که گره all میانگین سراسری در میان تمامی گره‌هاست. کلیدواژهٔ ALL مشخص می‌کند که آمارها باید برای تمامی گره‌ها گزارش شوند.
گزارش خلاصهٔ آمارهای CPU بر اساس جایگیری در گره‌های NUMA. مقادیر زیر نمایش داده می‌شوند:
شمارهٔ منطقی گره NUMA. کلیدواژهٔ all نشان می‌دهد که آمارها به عنوان میانگین در میان تمامی گره‌ها محاسبه شده‌اند.
تمامی فیلدهای دیگر مشابه مواردی هستند که با گزینهٔ -u نمایش داده می‌شوند (به پایین مراجعه کنید).
نمایش آمارها در قالب JSON (JavaScript Object Notation). ترتیب فیلدهای خروجی JSON تعریف‌نشده است و ممکن است فیلدهای جدیدی در آینده افزوده شوند.
پردازنده‌هایی را که باید آمارها برای آن‌ها گزارش شوند مشخص می‌کند. cpu_list فهرستی از مقادیر یا بازه‌ای از مقادیر جدا شده با کاما است (مانند 0,2,4-7,12-). توجه داشته باشید که پردازندهٔ 0 اولین پردازنده است و پردازندهٔ all میانگین سراسری میان تمامی پردازنده‌هاست. کلیدواژهٔ ALL مشخص می‌کند که آمارها باید برای تمامی پردازنده‌ها گزارش شوند. پردازنده‌های آفلاین نمایش داده نمی‌شوند.
نمایش عناصر توپولوژی در گزارش CPU (گزینهٔ -u در زیر را ببینید). عناصر زیر نمایش داده می‌شوند:
شمارهٔ هستهٔ منطقی.
شمارهٔ سوکت منطقی.
شمارهٔ گره منطقی NUMA.
نمایش برچسب زمانی (UTC - ساعت هماهنگ جهانی) بر حسب ثانیه از زمان مبدأ (epoch).
گزارش میزان مصرف CPU. مقادیر زیر نمایش داده می‌شوند:
شمارهٔ پردازنده. کلیدواژهٔ all نشان می‌دهد که آمارها به عنوان میانگین در میان تمامی پردازنده‌ها محاسبه شده‌اند.
%usr
درصد مصرف CPU در حین اجرا در سطح کاربر (برنامه) را نشان می‌دهد.
%nice
درصد مصرف CPU در حین اجرا در سطح کاربر با اولویت nice را نشان می‌دهد.
%sys
درصد مصرف CPU در حین اجرا در سطح سیستم (کرنل) را نشان می‌دهد. توجه داشته باشید که این مقدار شامل زمان صرف‌شده برای رسیدگی به وقفه‌های سخت‌افزاری و نرم‌افزاری نمی‌شود.
%iowait
درصد زمانی را نشان می‌دهد که CPU یا CPUها بیکار بوده‌اند در حالی که سیستم درخواست معلق ورودی/خروجی (I/O) دیسک داشته است.
%irq
درصد زمان صرف‌شده توسط CPU یا CPUها برای رسیدگی به وقفه‌های سخت‌افزاری را نشان می‌دهد.
%soft
درصد زمان صرف‌شده توسط CPU یا CPUها برای رسیدگی به وقفه‌های نرم‌افزاری را نشان می‌دهد.
%steal
درصد زمان صرف‌شده در انتظار ناخواسته توسط CPU یا CPUهای مجازی را در حالی که ناظر مجازی‌سازی (hypervisor) به پردازندهٔ مجازی دیگری خدمات می‌داد نشان می‌دهد.
%guest
درصد زمان صرف‌شده توسط CPU یا CPUها برای اجرای یک پردازندهٔ مجازی را نشان می‌دهد.
%gnice
درصد زمان صرف‌شده توسط CPU یا CPUها برای اجرای یک مهمان با اولویت nice را نشان می‌دهد.
%idle
درصد زمانی را نشان می‌دهد که CPU یا CPUها بیکار بوده‌اند و سیستم هیچ درخواست معلق ورودی/خروجی (I/O) دیسک نداشته است.
چاپ شمارهٔ نگارش و خروج.

دستور mpstat متغیرهای محیطی زیر را مد نظر قرار می‌دهد:

به‌طور پیش‌فرض، هنگامی که خروجی به یک ترمینال متصل باشد، آمارها به‌صورت رنگی نمایش داده می‌شوند. از این متغیر برای تغییر تنظیمات استفاده کنید. مقادیر ممکن برای این متغیر عبارتند از never، always یا auto (مورد آخر معادل تنظیمات پیش‌فرض است).
لطفاً توجه داشته باشید که رنگ استفاده‌شده برای نمایش یک مقدار (قرمز، زرد یا هر رنگ دیگر)، صرفاً به دلیل رنگ آن نشان‌دهندهٔ هیچ‌گونه مشکلی نیست؛ بلکه تنها بازه‌های مختلف مقادیر را مشخص می‌کند.
رنگ‌ها و سایر مشخصه‌های مورد استفاده برای نمایش آمارها در ترمینال را مشخص می‌کند. مقدار آن فهرستی از قابلیت‌هاست که با دونقطه (:) از یکدیگر جدا شده‌اند و به‌طور پیش‌فرض برابر است با I=32;22:N=34;1:W=35;1:X=31;1:Z=34;22. قابلیت‌های پشتیبانی‌شده عبارتند از:
زیررشتهٔ SGR (گزینش بازنمایی گرافیکی) برای شمارهٔ CPU.
زیررشتهٔ SGR برای مقادیر آماری غیرصفر.
زیررشتهٔ SGR برای مقادیر درصدی در بازهٔ 75% تا 90% (یا در بازهٔ 10% تا 25% بسته به معنای سنجه).
زیررشتهٔ SGR برای مقادیر درصدی بزرگ‌تر یا مساوی 90% (یا کوچک‌تر یا مساوی 10% بسته به معنای سنجه).
زیررشتهٔ SGR برای مقادیر صفر.
اگر این متغیر وجود داشته باشد و مقدار آن ISO باشد، محلی‌سازی (locale) جاری هنگام چاپ تاریخ در سربرگ گزارش نادیده گرفته خواهد شد. دستور mpstat در عوض از قالب ISO 8601 (به‌صورت YYYY-MM-DD) استفاده خواهد کرد. برچسب زمانی نیز با قالب ISO 8601 سازگار خواهد بود.

نمایش پنج گزارش از آمارهای سراسری میان تمام پردازنده‌ها در فواصل دو ثانیه‌ای.
نمایش پنج گزارش از آمارهای تمامی پردازنده‌ها در فواصل دو ثانیه‌ای.

سیستم‌فایل /proc باید سوار (mount) شده باشد تا دستور mpstat کار کند.

مسیر /proc شامل فایل‌های گوناگونی با آمارهای سیستم است.

Sebastien Godard (sysstat <at> orange.fr)

sar(1), pidstat(1), iostat(1), vmstat(8)

https://github.com/sysstat/sysstat
https://sysstat.github.io

JULY 2025 Linux