.\" pidstat manual page - (C) 2007-2025 Sebastien Godard (sysstat orange.fr) .TH PIDSTAT 1 "JANUARY 2025" Linux "Linux User's Manual" -*- nroff -*- .SH "نام (NAME)" pidstat \- گزارش آمار تسک‌های لینوکس. .SH "خلاصه دستور (SYNOPSIS)" .B pidstat [ \-d ] [ \-H ] [ \-h ] [ \-I ] [ \-l ] [ \-R ] [ \-r ] [ \-s ] [ \-t ] [ \-U [ .IB "username " "] ] [ \-u ] [ \-V ] [ \-v ] [ \-w ] [ \-C " "comm " "] [ \-G " "process_name" .BI "] [ \-\-dec={ 0 | 1 | 2 } ] [ \-\-human ] [ \-o JSON ] [ \-p { " "pid" "[,...]" .B | SELF | ALL } ] [ \-T { TASK | CHILD | ALL } ] [ .IB "interval " "[ " "count " "] ] [ \-e " "program" .IB "args " "]" .SH "توضیحات (DESCRIPTION)" دستور .B pidstat برای پایش تسک‌های مجزایی که در حال حاضر توسط هسته لینوکس مدیریت می‌شوند به کار می‌رود. این دستور فعالیت‌های هر تسکِ انتخاب‌شده با گزینه .B \-p یا تمام تسک‌های مدیریت‌شده توسط هسته لینوکس را (در صورتی که گزینه .B \-p ALL استفاده شده باشد) در خروجی استاندارد می‌نویسد. مشخص نکردن هیچ تسکی معادل با تعیین .B \-p ALL است، اما تنها تسک‌های فعال (تسک‌هایی با مقادیر آماری غیر صفر) در گزارش نمایش داده خواهند شد. .PP دستور .B pidstat همچنین می‌تواند برای پایش فرایندهای فرزندِ تسک‌های انتخاب‌شده استفاده شود. توضیحات مربوط به گزینه .B \-T را در ادامه بخوانید. .PP پارامتر .I interval مدت زمان بر حسب ثانیه را میان هر گزارش مشخص می‌کند. مقدار 0 (یا تعیین نکردن هیچ پارامتری) نشان می‌دهد که آمار تسک‌ها باید برای مدت زمان سپری‌شده از هنگام راه‌اندازی سیستم (بوت) گزارش شوند. در صورتی که .I interval روی صفر تنظیم نشده باشد، پارامتر .I count می‌تواند همراه با آن تعیین شود. مقدار .I count تعداد گزارش‌های تولیدشده در فواصل زمانیِ .I interval ثانیه را مشخص می‌کند. اگر پارامتر .I interval بدون پارامتر .I count تعیین شود، دستور .B pidstat گزارش‌ها را به‌طور پیوسته تولید می‌کند. .PP می‌توانید اطلاعات مربوط به فعالیت‌های خاص تسک را با استفاده از پرچم‌ها (flags) انتخاب کنید. مشخص نکردن هیچ پرچمی، تنها فعالیت پردازنده (CPU) را انتخاب می‌کند. .SH "گزینه‌ها (OPTIONS)" .TP .BI "\-C " "comm" تنها تسک‌هایی را نمایش می‌دهد که نام دستور آن‌ها شامل رشته .IR "comm" " باشد. این رشته می‌تواند یک عبارت باقاعده (regular expression) باشد." .TP .B \-d گزارش آمار I/O (تنها در هسته‌های 2.6.20 و بالاتر). مقادیر زیر ممکن است نمایش داده شوند: .RS .IP UID شناسه کاربری واقعی (UID) تسکِ در حال پایش. .IP USER نام کاربر واقعی مالکِ تسکِ در حال پایش. .IP PID شماره شناسه (PID) تسکِ در حال پایش. .IP kB_rd/s میزان کیبی‌بایتی که تسک در هر ثانیه موجب خوانده شدن آن از دیسک شده است. .IP kB_wr/s میزان کیبی‌بایتی که تسک در هر ثانیه موجب شده یا خواهد شد که بر روی دیسک نوشته شود. .IP kB_ccwr/s میزان کیبی‌بایتی که نوشتن آن روی دیسک توسط تسک لغو شده است. این وضعیت ممکن است زمانی رخ دهد که تسک بخشی از pagecache کثیف (dirty) را کوتاه (truncate) کند. در این حالت، بخشی از I/O که به حساب تسک دیگری گذاشته شده بود رخ نخواهد داد. .IP iodelay تأخیر I/O بلوکی تسکِ در حال پایش، که با تیک‌های ساعت (clock ticks) اندازه‌گیری می‌شود. این معیار شامل تأخیرهای صرف‌شده در انتظار برای تکمیل I/O بلوکی همگام (sync) و تکمیل I/O بلوکی swapin است. .IP Command نام دستور تسک. .RE .TP .B \-\-dec={ 0 | 1 | 2 } تعداد ارقام اعشار مورد استفاده را مشخص می‌کند (۰ تا ۲، مقدار پیش‌فرض ۲ است). .TP .BI "\-e " "program args" برنامه .I program را با آرگومان‌های ارائه‌شده .I args اجرا کرده و آن را با .B pidstat پایش می‌کند. .B pidstat زمانی که .I program خاتمه یابد متوقف می‌شود. باید یک مقدار غیر صفر برای پارامتر .I interval مشخص شود. .TP .BI "\-G " "process_name" تنها فرایندهایی را نمایش می‌دهد که نام دستور آن‌ها شامل رشته .IR "process_name" " باشد." این رشته می‌تواند یک عبارت باقاعده باشد. اگر گزینه .B \-t همراه با گزینه .B \-G استفاده شود، نخ‌های (threads) متعلق به آن فرایند نیز نمایش داده می‌شوند (حتی اگر نام دستور آن‌ها شامل رشته .IR "process_name" " نباشد)." .TP .B \-H نمایش برچسب زمان بر حسب ثانیه‌های سپری‌شده از epoch (مبدأ زمان یونیکس). .TP .B \-h تمام فعالیت‌ها را به صورت افقی در یک خط نمایش می‌دهد، بدون آنکه آمار میانگین در انتهای گزارش آورده شود. این گزینه برای آسان‌تر کردن تجزیه (parse) خروجی توسط سایر برنامه‌ها در نظر گرفته شده است. .TP .B \-\-human اندازه‌ها را در قالبی خوانا برای انسان چاپ می‌کند (مانند 1.0k، 1.2M و غیره). واحدهای نمایش داده‌شده با این گزینه بر هر واحد پیش‌فرض دیگری (مانند کیبی‌بایت، سکتور و...) که به این معیارها وابسته است اولویت دارند. .TP .B \-I در یک محیط SMP، مشخص می‌کند که میزان مصرف CPU تسک‌ها .RB "(همان‌طور که توسط گزینه " "\-u" " نمایش داده می‌شود)" باید بر تعداد کل پردازنده‌ها تقسیم شود. .TP .B \-l نام دستور فرایند و تمام آرگومان‌های آن را نمایش می‌دهد. .TP .B \-o JSON آمار را در قالب JSON (نشانه‌گذاری شیء جاوااسکریپت) نمایش می‌دهد. ترتیب فیلدهای خروجی JSON تعریف‌نشده است و ممکن است در آینده فیلدهای جدیدی اضافه شوند. .TP .BI "\-p { " "pid" "[,...] | SELF | ALL }" تسک‌ها (فرایندها)یی را انتخاب می‌کند که آمار برای آن‌ها گزارش خواهد شد. .I pid شناسه فرایند است. کلیدواژه .B SELF نشان می‌دهد که آمار برای خودِ فرایند .B pidstat گزارش شود، در حالی که کلیدواژه .B ALL نشان می‌دهد که آمار باید برای تمام تسک‌های مدیریت‌شده توسط سیستم گزارش شود. .TP .B \-R اطلاعات اولویت بی‌درنگ (realtime) و سیاست زمان‌بندی را گزارش می‌دهد. مقادیر زیر ممکن است نمایش داده شوند: .RS .IP UID شناسه کاربری واقعی تسکِ در حال پایش. .IP USER نام کاربر واقعی مالکِ تسکِ در حال پایش. .IP PID شماره شناسه تسکِ در حال پایش. .IP prio اولویت بی‌درنگِ تسکِ در حال پایش. .IP policy سیاست زمان‌بندی تسکِ در حال پایش. .IP Command نام دستور تسک. .RE .TP .B \-r خطاهای صفحه (page faults) و میزان مصرف حافظه را گزارش می‌دهد. هنگام گزارش آمار برای تسک‌های مجزا، مقادیر زیر ممکن است نمایش داده شوند: .RS .IP UID شناسه کاربری واقعی تسکِ در حال پایش. .IP USER نام کاربر واقعی مالکِ تسکِ در حال پایش. .IP PID شماره شناسه تسکِ در حال پایش. .IP minflt/s تعداد کل خطاهای جزئی (minor faults) ایجادشده توسط تسک در هر ثانیه؛ خطاهایی که نیازی به بارگذاری صفحه حافظه از دیسک نداشته‌اند. .IP majflt/s تعداد کل خطاهای عمده (major faults) ایجادشده توسط تسک در هر ثانیه؛ خطاهایی که نیازمند بارگذاری صفحه حافظه از دیسک بوده‌اند. .IP VSZ اندازه مجازی (Virtual Size): میزان کل مصرف حافظه مجازی تسک بر حسب کیبی‌بایت. .IP RSS اندازه مقیم (Resident Set Size): حافظه فیزیکی مبادله‌نشده (non-swapped) استفاده‌شده توسط تسک بر حسب کیبی‌بایت..IP %MEM سهم در حال حاضر استفاده‌شده از حافظه فیزیکی در دسترس توسط تسک. .IP Command نام دستور تسک. .RE .IP هنگام گزارش آمارهای کلی برای تسک‌ها و تمام فرزندانشان، مقادیر زیر ممکن است نمایش داده شوند: .RS .IP UID شماره شناسایی کاربری واقعی تسکی که به همراه فرزندانش تحت نظارت است. .IP USER نام کاربر واقعی مالک تسکی که به همراه فرزندانش تحت نظارت است. .IP PID شماره شناسایی تسکی که به همراه فرزندانش تحت نظارت است. .IP minflt\-nr تعداد کل خطاهای جزئی (minor faults) ایجادشده توسط تسک و تمام فرزندانش که در طول این بازه زمانی گردآوری شده است. .IP majflt\-nr تعداد کل خطاهای عمده (major faults) ایجادشده توسط تسک و تمام فرزندانش که در طول این بازه زمانی گردآوری شده است. .IP Command نام دستور تسکی که به همراه فرزندانش تحت نظارت است. .RE .TP .B \-s گزارش میزان استفاده از پشته (stack). مقادیر زیر ممکن است نمایش داده شوند: .RS .IP UID شماره شناسایی کاربری واقعی تسک تحت نظارت. .IP USER نام کاربر واقعی مالک تسک تحت نظارت. .IP PID شماره شناسایی تسک تحت نظارت. .IP StkSize میزان حافظه بر حسب کیبی‌بایت که به عنوان پشته برای تسک رزرو شده، اما لزوماً استفاده نشده است. .IP StkRef میزان حافظه بر حسب کیبی‌بایت که به عنوان پشته استفاده شده و توسط تسک ارجاع داده شده است. .IP Command نام دستور تسک. .RE .TP .B \-T { TASK | CHILD | ALL } این گزینه مشخص می‌کند چه چیزی باید توسط دستور .BR "pidstat " "نظارت شود. کلیدواژهٔ " "TASK" نشان می‌دهد که آمارها باید برای تک‌تک تسک‌ها گزارش شوند (این گزینه پیش‌فرض است) در حالی که کلیدواژهٔ .B CHILD نشان می‌دهد آمارها باید به صورت سراسری برای تسک‌های انتخاب‌شده و تمام فرزندانشان گزارش شوند. کلیدواژهٔ .B ALL نشان می‌دهد آمارها باید هم برای تک‌تک تسک‌ها و هم به صورت سراسری برای تسک‌های انتخاب‌شده و فرزندانشان گزارش شوند. نکته: آمارهای سراسری برای تسک‌ها و تمام فرزندانشان برای همه گزینه‌های .B pidstat در دسترس نیست. همچنین این آمارها لزوماً مربوط به بازه زمانی فعلی نیستند: آمارهای یک فرایند فرزند تنها هنگامی گردآوری می‌شوند که پایان یابد یا کشته (kill) شود. .TP .B \-t همچنین آمار ریسه‌های (threads) مرتبط با تسک‌های انتخاب‌شده را نمایش می‌دهد. این گزینه مقادیر زیر را به گزارش‌ها می‌افزاید: .RS .IP TGID شماره شناسایی سرگروه ریسه (thread group leader). .IP TID شماره شناسایی ریسه تحت نظارت. .RE .TP .BI "\-U [ " "username " "]" نمایش نام کاربر واقعی تسک‌های تحت نظارت به جای UID. .RI "اگر " "username" مشخص شده باشد، تنها تسک‌های متعلق به کاربر مشخص‌شده نمایش داده می‌شوند. .TP .B \-u گزارش میزان مصرف CPU. هنگام گزارش آمار برای تک‌تک تسک‌ها، مقادیر زیر ممکن است نمایش داده شوند: .RS .IP UID شماره شناسایی کاربری واقعی تسک تحت نظارت. .IP USER نام کاربر واقعی مالک تسک تحت نظارت. .IP PID شماره شناسایی تسک تحت نظارت. .IP %usr درصد استفاده از CPU توسط تسک حین اجرا در سطح کاربر (برنامه کاربردی)، با یا بدون اولویت nice. توجه داشته باشید که این فیلد شامل زمان صرف‌شده برای اجرای یک پردازنده مجازی نمی‌شود. .IP %system درصد استفاده از CPU توسط تسک حین اجرا در سطح سیستم (هسته). .IP %guest درصد زمان CPU صرف‌شده توسط تسک در ماشین مجازی (اجرای یک پردازنده مجازی). .IP %wait درصد زمان CPU صرف‌شده توسط تسک در حین انتظار برای اجرا. .IP %CPU درصد کل زمان CPU استفاده‌شده توسط تسک. در یک محیط SMP، در صورتی که گزینهٔ .B \-I در خط فرمان وارد شده باشد، مصرف CPU تسک بر تعداد کل CPUها تقسیم خواهد شد. .IP CPU شماره پردازنده‌ای که تسک به آن متصل است. .IP Command نام دستور تسک. .RE .IP هنگام گزارش آمارهای کلی برای تسک‌ها و تمام فرزندانشان، مقادیر زیر ممکن است نمایش داده شوند: .RS .IP UID شماره شناسایی کاربری واقعی تسکی که به همراه فرزندانش تحت نظارت است. .IP USER نام کاربر واقعی مالک تسکی که به همراه فرزندانش تحت نظارت است. .IP PID شماره شناسایی تسکی که به همراه فرزندانش تحت نظارت است. .IP usr\-ms تعداد کل میلی‌ثانیه‌های صرف‌شده توسط تسک و تمام فرزندانش حین اجرا در سطح کاربر (برنامه کاربردی)، با یا بدون اولویت nice، که در طول بازه زمانی گردآوری شده است. توجه داشته باشید که این فیلد شامل زمان صرف‌شده برای اجرای یک پردازنده مجازی نمی‌شود. .IP system\-ms تعداد کل میلی‌ثانیه‌های صرف‌شده توسط تسک و تمام فرزندانش حین اجرا در سطح سیستم (هسته)، که در طول بازه زمانی گردآوری شده است. .IP guest\-ms تعداد کل میلی‌ثانیه‌های صرف‌شده توسط تسک و تمام فرزندانش در ماشین مجازی (اجرای یک پردازنده مجازی). .IP Command نام دستور تسکی که به همراه فرزندانش تحت نظارت است. .RE .TP .B \-V چاپ شماره نسخه و سپس خروج. .TP .B \-v گزارش مقادیر برخی از جدول‌های هسته. مقادیر زیر ممکن است نمایش داده شوند: .RS .IP UID شماره شناسایی کاربری واقعی تسک تحت نظارت. .IP USER نام کاربر واقعی مالک تسک تحت نظارت. .IP PID شماره شناسایی تسک تحت نظارت. .IP threads تعداد ریسه‌های مرتبط با تسک فعلی. .IP fd\-nr تعداد توصیف‌کننده‌های فایل مرتبط با تسک فعلی. .IP Command نام دستور تسک. .RE .TP .B \-w گزارش فعالیت تعویض تسک (تنها در هسته‌های 2.6.23 و جدیدتر). مقادیر زیر ممکن است نمایش داده شوند: .RS .IP UID شماره شناسایی کاربری واقعی تسک تحت نظارت. .IP USER نام کاربر واقعی مالک تسک تحت نظارت. .IP PID شماره شناسایی تسک تحت نظارت. .IP cswch/s تعداد کل تعویض‌های زمینه اختیاری (voluntary context switches) انجام‌شده توسط تسک در هر ثانیه. یک تعویض زمینه اختیاری زمانی رخ می‌دهد که تسک به دلیل نیاز به منبعی که در دسترس نیست مسدود (block) شود..IP nvcswch/s تعداد کل تعویض‌های زمینه‌ی غیرداوطلبانه (involuntary context switches) که وظیفه در هر ثانیه انجام داده است. یک تعویض زمینه‌ی غیرداوطلبانه زمانی رخ می‌دهد که یک وظیفه در طول برش زمانی (time slice) خود اجرا شده و سپس مجبور به واگذاری پردازنده می‌شود. .IP Command نام دستور وظیفه. .RE .SH "محیط (ENVIRONMENT)" دستور .B pidstat متغیرهای محیطی زیر را در نظر می‌گیرد: .TP .B S_COLORS به‌طور پیش‌فرض، زمانی که خروجی به یک ترمینال متصل باشد، آمارها به صورت رنگی نمایش داده می‌شوند. از این متغیر برای تغییر تنظیمات استفاده کنید. مقادیر ممکن برای این متغیر عبارتند از .IR "never" "، " "always" " یا " "auto" (مورد آخر معادل تنظیمات پیش‌فرض است). .br لطفاً توجه داشته باشید که رنگِ استفاده‌شده برای نمایش یک مقدار (قرمز، زرد یا هر رنگ دیگر)، صرفاً به دلیل رنگ آن نشان‌دهنده‌ی هیچ‌گونه مشکلی نیست؛ بلکه تنها بازه‌های مختلفی از مقادیر را نشان می‌دهد. .TP .B S_COLORS_SGR رنگ‌ها و سایر ویژگی‌های مورد استفاده برای نمایش آمار در ترمینال را مشخص می‌کند. مقدار آن فهرستی از قابلیت‌ها است که با دونقطه (:) از هم جدا شده‌اند و مقدار پیش‌فرض آن .BR "I=32;22:N=34;1:W=35;1:X=31;1:Z=34;22" "." است. قابلیت‌های پشتیبانی‌شده عبارتند از: .RS .TP .B I= زیررشته‌ی SGR (مخفف Select Graphic Rendition) برای مقادیر مواردی مانند PID، UID یا شماره‌ی CPU. .TP .B N= زیررشته‌ی SGR برای مقادیر آماری غیرصفر و برای نام‌های وظایف. .TP .BR "W=" " (یا " "M=" ")" زیررشته‌ی SGR برای مقادیر درصدی در بازه‌ی ۷۵٪ تا ۹۰٪ (یا در بازه‌ی ۱۰٪ تا ۲۵٪ بسته به مفهوم معیار سنجش). .TP .BR "X=" " (یا " "H=" ")" زیررشته‌ی SGR برای مقادیر درصدی بزرگ‌تر یا مساوی ۹۰٪ (یا کوچک‌تر یا مساوی ۱۰٪ بسته به مفهوم معیار سنجش). .TP .B Z= زیررشته‌ی SGR برای مقادیر صفر و برای نام‌های رشته‌ها (threads). .RE .TP .B S_TIME_FORMAT اگر این متغیر وجود داشته باشد و مقدار آن .BR ISO باشد، محلی‌سازی (locale) فعلی هنگام چاپ تاریخ در سرآیند گزارش نادیده گرفته خواهد شد. دستور .B pidstat در عوض از قالب ISO 8601 (YYYY-MM-DD) استفاده خواهد کرد. برچسب زمانی نیز با قالب ISO 8601 سازگار خواهد بود. .SH "مثال‌ها (EXAMPLES)" .TP .B pidstat 2 5 نمایش پنج گزارش از آمارهای پردازنده (CPU) برای هر وظیفه‌ی فعال در سیستم در فواصل زمانی دو ثانیه‌ای. .TP .B pidstat \-r \-p 1643 2 5 نمایش پنج گزارش از خطاهای صفحه (page faults) و آمارهای حافظه برای شناسه‌ی PID 1643 در فواصل زمانی دو ثانیه‌ای. .TP .B pidstat \-C """fox|bird"" \-r \-p ALL نمایش آمارهای کلی خطاهای صفحه و حافظه برای تمام فرایندهایی که نام دستور آن‌ها شامل رشته‌ی "fox" یا "bird" است. .TP .B pidstat \-T CHILD \-r 2 5 نمایش پنج گزارش از آمارهای خطاهای صفحه در فواصل زمانی دو ثانیه‌ای برای فرایندهای فرزند تمام وظایف در سیستم. تنها فرایندهای فرزندی که مقادیر آماری غیرصفر دارند نمایش داده می‌شوند. .SH "گزارش باگ‌ها (BUGS)" سیستم‌فایل .I /proc باید سوار (mount) شده باشد تا دستور .B pidstat بتواند کار کند. .PP اگرچه .B pidstat واحدهایی متناظر با کیلوبایت (kB)، مگابایت (MB) و... را نمایش می‌دهد، اما در واقع از کیبی‌بایت (kiB)، مبی‌بایت (MiB) و... استفاده می‌کند. یک کیبی‌بایت برابر با ۱۰۲۴ بایت، و یک مبی‌بایت برابر با ۱۰۲۴ کیبی‌بایت است..SH "فایل‌ها (FILES)" .IR /proc " شامل فایل‌های متعددی حاوی آمارهای سیستم است." .SH "نویسنده (AUTHOR)" Sebastien Godard (sysstat orange.fr) .SH "همچنین ببینید (SEE ALSO)" .BR "sar" "(1), " "top" "(1), " "ps" "(1), " "mpstat" "(1), " "iostat" "(1), " "vmstat" "(8)" .PP .I https://github.com/sysstat/sysstat .br .I https://sysstat.github.io