PMREP(1) General Commands Manual PMREP(1)

pmrep, pcp2csv - گزارش‌گر معیارهای کارایی

pmrep [-12357CdgGHIjkLmnprRuUvVxz?] [-4 action] [-6 sort-metric] [-8|-9 limit] [-a archive] [-A align] [--archive-folio folio] [-b|-B space-scale] [-c config] [--container container] [--csv-unit-info] [-D debug] [--daemonize] [-e derived] [-E lines] [-f format] [-F outfile] [-h host] [-i instances] [--include-texts] [-J rank] [-K spec] [-l delimiter] [-N predicate] [--no-inst-info] [-o output] [-O origin] [-P|-0 precision] [-q|-Q count-scale] [-s samples] [-S starttime] [-t interval] [-T endtime] [-w|-W width] [-X label] [-y|-Y time-scale] [-Z timezone] metricspec [...]

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

دستور pmrep مقادیر معیارهای انتخاب‌شده را از طریق امکانات Performance Co-Pilot (PCP) جمع‌آوری می‌کند، ببینید PCPIntro(1). معیارهایی که باید گزارش شوند در خط فرمان، در فایل‌های پیکربندی یا در هر دو مشخص می‌شوند. معیارها می‌توانند به‌طور خودکار با استفاده از امکانات PCP، یا به صورت پیش‌فرض یا از طریق مشخصات مقیاس‌بندی به ازای هر معیار، تبدیل و مقیاس‌بندی شوند. علاوه بر معیارهای موجود، معیارهای مشتق‌شده (derived metrics) را می‌توان با استفاده از عبارت‌های حسابی شرح داده شده در pmRegisterDerived(3) تعریف کرد.

مجموعهٔ گسترده‌ای از metricsetها (در ادامه ببینید) به طور پیش‌فرض گنجانده شده است که گزارش‌هایی دربارهٔ جزئیات هر فرایند، کارایی NUMA، شبیه‌سازی ابزارهای دیگری مانند sar(1) و موارد بیشتر ارائه می‌دهند؛ برای جزئیات به فایل‌های پیکربندی pmrep در $PCP_SYSCONF_DIR/pmrep (معمولاً /etc/pcp/pmrep) مراجعه کنید. تکمیل خودکار با کلید Tab برای گزینه‌ها، معیارها، و metricsetها برای bash و zsh در دسترس است.

مگر اینکه توسط گزینهٔ -h به میزبان دیگری هدایت شود، pmrep با دیمن جمع‌آورندهٔ معیارهای کارایی (PMCD، ببینید pmcd(1)) روی میزبان محلی ارتباط برقرار خواهد کرد.

گزینهٔ -a باعث می‌شود pmrep به جای اتصال به یک PMCD، از مجموعه بایگانی‌های مشخص‌شده استفاده کند. گزینه‌های -a و -h مانعة‌الجمع (ناسازگار با یکدیگر) هستند.

گزینهٔ -L باعث می‌شود pmrep از یک زمینهٔ (context) محلی برای جمع‌آوری معیارها از DSO PMDAها (عامل‌های دامنه معیارهای کارایی، «پلاگین‌ها») روی میزبان محلی بدون نیاز به PMCD استفاده کند. تنها برخی از معیارها در این حالت در دسترس هستند. گزینه‌های -a، -h و -L ناسازگار با یکدیگر هستند.

معیارهای مورد نظر در آرگومان(های) metricspec نام‌گذاری می‌شوند. اگر یک metricspec گرهی غیربرگ را در فضای نام معیارهای کارایی (PMNS) مشخص کند، pmrep به صورت بازگشتی در PMNS پایین رفته و تمام گره‌های برگ (یعنی معیارها) را برای آن metricspec گزارش می‌کند. از pminfo(1) برای فهرست کردن تمام معیارها (گره‌های برگ PMNS) و توضیحات آن‌ها استفاده کنید.

یک metricspec سه شکل مختلف دارد. نخست، در خط فرمان می‌تواند با دو نقطه (``:'') شروع شود تا نشان‌دهندهٔ یک metricset باشد که باید از فایل‌های پیکربندی pmrep خوانده شود (ببینید -c و pmrep.conf(5))، که خود می‌تواند از هر تعداد معیار تشکیل شده باشد. دوم، یک metricspec که با کاراکتری غیر از دونقطه شروع می‌شود، یک گره PMNS را طبق توضیحات بالا مشخص می‌کند که می‌تواند به صورت اختیاری با تعاریف قالب‌بندی خروجی معیار دنبال شود. این به اصطلاح شکل فشرده (compact form) یک metricspec به شرح زیر تعریف می‌شود:


metric[,label[,instances[,unit/scale[,type[,width[,precision[,limit]]]]]]]

یک گره معتبر PMNS (metric) اجباری است. می‌تواند با یک label متنی دنبال شود که در خروجی stdout به کار می‌رود. تعریف اختیاری instances گزارش‌گیری در csv و stdout را به نمونه‌های مشخص‌شده از معیار محدود می‌کند تا نمونه‌های غیرمطابق فیلتر شوند (ببینید -i). یک unit/scale اختیاری برای معیارهای غیررشته‌ای و سازگار با بُعد قابل اعمال است. برای مشخصات پشتیبانی‌شدهٔ unit/scale به ادامه مراجعه کنید. به طور پیش‌فرض، معیارهای شمارندهٔ تجمعی به نرخ (rate) تبدیل می‌شوند؛ یک type اختیاری می‌تواند روی raw تنظیم شود تا این تبدیل نرخ غیرفعال شود. برای خروجی stdout می‌توان از یک width عددی برای تعیین عرض ستون خروجی برای این معیار استفاده کرد. رشته‌های بسیار عریض در خروجی بریده می‌شوند تا درون ستون جا شوند. می‌توان یک precision مختص معیار را برای مقادیر عددی غیرصحیح خروجی تعیین کرد. در نهایت، می‌توان یک limit مختص معیار را برای فیلتر کردن مقادیر عددی بر اساس حد مجاز تنظیم نمود..PP به عنوان یک حالت خاص برای معیارهایی که شمارنده‌هایی با واحدهای زمانی هستند (نانوثانیه تا ساعت)، می‌توان از unit/scale برای تغییر گزارش‌دهی پیش‌فرض (برای نمونه، میلی‌ثانیه / ثانیه) جهت نرمال‌سازی در بازه صفر تا یک با تنظیم آن روی sec استفاده کرد (همچنین -y و -Y را ببینید).

عبارت metricspec زیر درخواست می‌کند که معیار kernel.all.sysfork تحت برچسب متنی forks گزارش شود، و با تبدیل به نرخ پیش‌فرض معیار یعنی count/s در ستونی با پهنای 8 نمایش یابد. اگرچه تعاریف در این شکل فشرده اختیاری هستند، اما همیشه باید به همان ترتیبی که در بالا مشخص شده ارائه شوند، از این رو از کاما استفاده شده است.


kernel.all.sysfork,forks,,,,8

شکل سوم یک metricspec، یعنی verbose form، تنها در pmrep.conf(5) توصیف شده و معتبر است.

معیارهای اشتقاقی مانند معیارهای گره برگ معمولی PMNS مشخص می‌شوند.

گزینه‌های اعمال‌شده از طریق مقادیر محیطی (ببینید pmGetOptions(3)) بر مقادیر پیش‌فرض توکار متناظر (در صورت وجود) تقدم دارند. گزینه‌های فایل پیکربندی بر متغیرهای محیطی متناظر (در صورت وجود) تقدم دارند. گزینه‌های خط فرمان بر گزینه‌های فایل پیکربندی متناظر (در صورت وجود) تقدم دارند.

دستور pcp2csv یک نام مستعار برای pmrep است.

گزینه‌های موجود خط فرمان عبارتند از:

-0 precision, --precision-force=precision
مانند -P است، اما این گزینه مشخصات اختصاصی هر معیار را بازنویسی خواهد کرد.
-1, --dynamic-header
هر بار که تغییری در در دسترس بودن مقادیر معیار و نمونه رخ دهد، یک سرآیند جدید که به‌صورت پویا تنظیم شده چاپ می‌کند. به‌طور پیش‌فرض یک سرآیند ایستا که هرگز تغییر نمی‌کند یک بار چاپ می‌شود. همچنین ببینید -4، -7 و -E.
-2, --overall-rank
رتبه‌بندی کلی نمونه‌ها در آرشیو را انجام می‌دهد. به‌طور پیش‌فرض رتبه‌بندی (ببینید -J) و گزارش‌دهی در هر بازه زمانی رخ می‌دهد. با این گزینه، پیش از گزارش خلاصه، تمام نمونه‌ها و مقادیر رتبه‌بندی می‌شوند. برای گزینه‌های بیشتر گزارش خلاصه آرشیو، از جمله میانگین‌ها و زمان‌های اوج مقادیر، pmlogsummary(1) را ببینید.
-3, --overall-rank-alt
مانند -2 است، اما نمونه‌های معیار را در قالب metricspec مربوط به pmrep چاپ می‌کند تا امکان انتخاب آسان نمونه‌ها برای بررسی بیشتر فراهم شود.
-4 action, --names-change=action
مشخص می‌کند هنگام دریافت رویداد تغییر نام معیارها در حین نمونه‌برداری، چه کنشی انجام گیرد. این رویدادها زمانی رخ می‌دهند که یک PMDA مدتی پس از راه‌اندازی، معیارهای جدیدی کشف کرده و به ابزارهای کلاینت در حال اجرا مانند pmrep اطلاع دهد. مقادیر معتبر برای action عبارتند از update (تازه‌سازی معیارهای در حال نمونه‌برداری)، ignore (کاری انجام نده - رفتار پیش‌فرض) و abort (خروج از برنامه در صورت وقوع چنین رویدادی). update به معنای فعال بودن --dynamic-header است.
-5, --ignore-unknown
معیاری که از pmrep خواسته شده گزارش کند ممکن است به دلایل متعددی «ناشناخته» (unknown) باشد: معیار در PMNS منبع درخواستی معیارها وجود ندارد (pmcd(1) برای معیارهای زنده از یک میزبان، یا یک آرشیو PCP برای معیارهای تاریخی)، یا یک یا چند معیار عملوند در تعریف یک معیار اشتقاقی در دسترس نیست، یا تعریف یک معیار اشتقاقی حاوی خطاهای نحوی است. به‌طور پیش‌فرض، اگر هر یک از معیارهای درخواستی ناشناخته باشد، pmrep خطاها را گزارش داده و خارج می‌شود. گزینه -5 رفتار پیش‌فرض را تغییر می‌دهد و pmrep هر معیاری را که ناشناخته باشد، به شرط آن‌که دست‌کم یک معیار شناخته‌شده برای گزارش باقی بماند، در سکوت نادیده می‌گیرد.

اگر یک معیار ناشناخته با تعریف یک معیار اشتقاقی مرتبط باشد، برای توضیح عمیق‌تر درباره معیارهای اشتقاقی و گزینه‌های موجود برای عیب‌یابی مشکلات مربوط به تعریف و ارزیابی آن‌ها، به pmRegisterDerivedMetric(3) مراجعه کنید.

-6, --sort-metric=sort-metric
یک معیار مرجع مرتب‌سازی را برای مرتب کردن خروجی بر اساس مقادیر با -X مشخص می‌کند. به‌طور پیش‌فرض ترتیب مرتب‌سازی نزولی است؛ افزودن علامت منفی (``-'') به ابتدای نام معیار، ترتیب را به صعودی تغییر می‌دهد. همچنین ببینید -J و -N.
-7, --fixed-header
همراه با -X یک بار یک سرآیند ثابت (مگر در صورت استفاده از -E) شامل همه معیارهای در حال گزارش چاپ می‌کند. برخلاف سرآیند پیش‌فرض (ایستا)، تنها نمونه‌هایی که مقادیر آن‌ها در دسترس است گزارش می‌شوند. برخلاف سرآیند پویا، حتی اگر مقادیر برخی معیارها بعداً (غیر)قابل‌دسترس شوند، سرآیند به‌روزرسانی نمی‌شود. همچنین ببینید -1 و -E.
-8 limit, --limit-filter=limit
نتایج را به نمونه‌هایی با مقادیر بالاتر/پایین‌تر از limit محدود می‌کند. یک عدد صحیح مثبت، نمونه‌هایی با مقادیر در حد یا بالاتر از آن را در گزارش لحاظ می‌کند. یک عدد صحیح منفی، نمونه‌هایی با مقادیر در حد یا پایین‌تر از آن را در گزارش لحاظ می‌کند. مقدار صفر هیچ فیلترکردن حدی انجام نمی‌دهد. این گزینه مشخصات احتمالی اختصاصی هر معیار را بازنویسی نخواهد کرد. همچنین ببینید -J و -N.
-9 limit, --limit-filter-force=limit
مانند -8 است، اما این گزینه مشخصات اختصاصی هر معیار را بازنویسی خواهد کرد.
مقادیر معیارهای کارایی از مجموعه‌ای از فایل‌های آرشیو Performance Co-Pilot (PCP) که توسط آرگومان archive مشخص شده‌اند بازیابی می‌شوند؛ این آرگومان فهرستی از نام‌های جداشده با کاما است که هر یک از آن‌ها می‌تواند نام پایه یک آرشیو یا نام دایرکتوری حاوی یک یا چند آرشیو باشد. همچنین ببینید -u.
نمونه اولیه را وادار می‌کند تا بر مرز یک واحد زمانی طبیعی align تراز شود. برای توصیف کامل ساختار نحوی align به PCPIntro(1) مراجعه کنید..TP --archive-folio=folio خواندن آرشیوهای منبع متریک از folio آرشیو PCP که توسط ابزارهایی مانند pmchart(1) یا، در موارد کمتر، به صورت دستی با mkaf(1) ایجاد شده است.
واحد/مقیاس برای متریک‌های فضا (بایت)؛ مقادیر ممکن شامل bytes، Kbytes، KB، Mbytes، MB و غیره است. این گزینه مشخصات احتمالی به ازای هر متریک را بازنویسی نخواهد کرد. همچنین ببینید pmParseUnitsStr(3).
مانند -b اما این گزینه مشخصات به ازای هر متریک را بازنویسی خواهد کرد.
تعیین فایل یا دایرکتوری پیکربندی config مورد استفاده. در صورتی که config یک دایرکتوری باشد، تمام فایل‌های درون آن که به .conf ختم می‌شوند گنجانده خواهند شد. پیش‌فرض، نخستین مورد یافت‌شده از میان موارد زیر است: ./pmrep.conf، $HOME/.pmrep.conf، $HOME/pcp/pmrep.conf، $PCP_SYSCONF_DIR/pmrep/pmrep.conf و $PCP_SYSCONF_DIR/pmrep. ببینید pmrep.conf(5).
دریافت متریک‌های کارایی از container مشخص‌شده، خواه محلی یا از راه دور (ببینید -h).
--csv-unit-info
الحاق رشته‌های واحد به نام‌های متریک در سرآیند CSV با استفاده از قالب metric(unit) یا metric[inst](unit). همچنین ببینید -k.
خروج پیش از گزارش هرگونه مقدار، اما پس از تجزیهٔ پیکربندی و متریک‌ها و چاپ سرآیندهای احتمالی.
هنگام بازپخش از یک آرشیو، این گزینه درخواست می‌کند که تأخیر زمان‌واقعی حاکم میان نمونه‌ها اعمال شود (ببینید -t) تا وقفه‌ای اعمال گردد، به جای رفتار پیش‌فرض بازپخش با حداکثر سرعت.
اجرا در پس‌زمینه (Daemonize) در زمان راه‌اندازی.
تعیین متریک‌های کارایی مشتق‌شده (derived). اگر derived با یک اسلش (``/'') یا با یک نقطه (``.'') آغاز شود، به عنوان یک فایل پیکربندی متریک‌های مشتق‌شدهٔ PCP تفسیر خواهد شد؛ در غیر این صورت به عنوان عبارات متریک‌های مشتق‌شده که با کاما یا نقطه‌ویرگول از هم جدا شده‌اند تفسیر می‌شود. برای شرح کامل متریک‌های مشتق‌شده و فایل‌های پیکربندی متریک‌های مشتق‌شدهٔ PCP ببینید pmLoadDerivedConfig(3) و pmRegisterDerived(3). همچنین، استفاده از نحو پیکربندی pmrep.conf(5) امکان تعریف متریک‌های مشتق‌شده را به عنوان بخشی از مجموعه‌متریک‌ها (metricsets) فراهم می‌کند.

در صورت بروز مشکل در متریک‌های مشتق‌شده، صفحات راهنمای یادشده را با جزئیات بررسی کرده و مطمئن شوید که تمام متریک‌های مورد نیاز در دسترس هستند، به ویژه هنگام استفاده از آرشیوها. از -Dderive برای مشاهده اطلاعات اشکال‌زدایی بیشتر پیرامون تجزیه و ارزیابی متریک‌های مشتق‌شده استفاده کنید.

تکرار سرآیند پس از هر lines سطر از خروجی. هنگامی که از -1 یا -7 استفاده نمی‌شود، از auto برای تکرار سرآیند بر اساس ارتفاع ترمینال استفاده کنید. همچنین ببینید -1 و -7.
استفاده از رشتهٔ format برای قالب‌بندی برچسب زمان. این قالب با متد datetime.strftime پایتون استفاده خواهد شد که تا حد زیادی مشابه با مورد شرح‌داده‌شده در strftime(3) است. یک رشتهٔ format خالی (یعنی "") برچسب‌های زمان را از خروجی حذف خواهد کرد. در صورت استفاده از مقصد خروجی stdout، پیش‌فرض %H:%M:%S است. در صورت استفاده از مقصد خروجی csv، پیش‌فرض %Y-%m-%d %H:%M:%S است.
تعیین فایل خروجی outfile. ببینید -o.
خروجی دادن شماره ستون و اطلاعات کامل متریک، هر کدام در یک خط، پیش از چاپ مقادیر متریک.
عدم گنجاندن متریک‌های سراسری در گزارش‌دهی (ببینید pmrep.conf(5)).
دریافت متریک‌های کارایی از pmcd(1) روی host، به جای پیش‌فرض localhost.
هیچ سرآیندی چاپ نشود.
تنها نمونه‌های (instances) مشخص‌شده از متریک را بازیابی و گزارش می‌کند. به‌طور پیش‌فرض، تمام نمونه‌های موجود در ابتدا گزارش می‌شوند، مگر هنگام نوشتن در یک آرشیو (ببینید -o) که در آن صورت تمام نمونه‌های آتی نیز گزارش خواهند شد.

نمونه‌های instances مشخص‌شده در هنگام راه‌اندازی ابزار، از میان نمونه‌های اولیهٔ موجود فیلتر می‌شوند. بنابراین، نمونه‌هایی که با فیلتر مطابقت دارند اما پس از راه‌اندازی ابزار ظاهر می‌شوند گزارش نخواهند شد؛ از -j برای تغییر این رفتار استفاده کنید.

این یک گزینهٔ سراسری است که برای تمام متریک‌های دارای مقادیر مجموعه‌ای (set-valued) استفاده می‌شود، مگر اینکه یک فیلتر نمونهٔ خاص برای متریک به عنوان بخشی از یک metricspec ارائه شده باشد. به‌طور پیش‌فرض، متریک‌های تک‌مقداری «مسطح» (flat) بدون نمونه کماکان طبق معمول گزارش می‌شوند؛ از -v برای تغییر این رفتار استفاده کنید..PP instances فهرستی از یک یا چند مشخصهٔ پالایهٔ نمونه است که با کاما از یکدیگر جدا شده‌اند. پالایه‌های حاوی کاما یا فاصله باید درون نقل‌قول تکی (') یا جفت (") قرار گیرند. توجه داشته باشید که به عنوان بخشی از یک metricspec در خط فرمان، در فهرستی با بیش از یک پالایه، هم خود فهرست و هم هر پالایه باید مطابق آنچه در زیر نشان داده شده در نقل‌قول قرار گیرند. همچنین می‌توان یک پالایهٔ منفرد را با خطوط عمودی (|) به عنوان عبارت باقاعدهٔ جداساز نمونه تعریف کرد تا نقل‌قول‌گذاری آسان‌تر شود؛ در ادامه را ببینید.

استفاده از چندین گزینهٔ -i به عنوان یک روش جایگزین برای مشخص کردن بیش از یک پالایهٔ نمونهٔ غیرمختص به متریک مجاز است.

یک پالایهٔ نمونهٔ مجزا می‌تواند یکی از موارد زیر باشد:

نام کامل نمونه. به عنوان مثال، sda برای نمونه‌های disk.dev یا eth0 برای نمونه‌های network.interface.
شناسهٔ فرایند برای نمونه‌های proc.
نام پایهٔ یک فرایند برای نمونه‌های proc. به عنوان مثال، pmcd با تمام فرایندهای pmcd(1) بدون در نظر گرفتن مسیر یا PID آن‌ها مطابقت خواهد داشت.
عبارت باقاعده. به عنوان مثال، .*python.* با تمام نمونه‌هایی که رشتهٔ python را به عنوان بخشی از نام نمونهٔ خود دارند مطابقت دارد، به این معنی که با تمام فرایندهای Python صرف‌نظر از مسیر، PID یا نسخهٔ آن‌ها منطبق خواهد شد.

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

$ pmrep -i '. minute' kernel.all.load
$ pmrep -i '1 minute','5 minute' kernel.all.load
$ pmrep -i "'1 minute','5 minute'" kernel.all.load
$ pmrep -i '1 minute' -i '5 minute' kernel.all.load
$ pmrep kernel.all.load,,"'1 minute','5 minute'"
$ pmrep kernel.all.load,,'1 minute|5 minute'


با این حال، این دستور فقط نمونهٔ 1-minute را گزارش می‌کند:

$ pmrep -i '1 minute','5 minute' kernel.all.load,,'1 minute'


و این مورد همهٔ نمونه‌ها را گزارش می‌دهد (به دلیل regex ویژهٔ هر متریک):

$ pmrep -i '1 minute','5 minute' 'kernel.all.load,,.*'


مشابه متریک‌های ناشناخته که در بالا برای گزینهٔ -5 توضیح داده شد، متریکی که از pmrep خواسته شده گزارش شود ممکن است به چند دلیل «ناسازگار» در نظر گرفته شود: نوع متریکی که توسط pmrep پشتیبانی نمی‌شود (مانند PM_TYPE_AGGREGATE یا PM_TYPE_EVENT)، یا تعریف یک متریک اشتقاقی که حاوی خطاهای معنایی است، یا متریکی که در PMNS شناخته شده است اما متادادهٔ آن در دسترس نیست. به‌طور پیش‌فرض، اگر هر متریک درخواست‌شده‌ای ناسازگار باشد، pmrep خطاها را گزارش کرده و خارج می‌شود. گزینهٔ -I رفتار پیش‌فرض را تغییر می‌دهد و pmrep هر متریک ناسازگار را به‌صورت خاموش نادیده می‌گیرد، به شرط آنکه دست‌کم یک متریک سازگار برای گزارش دادن باقی بماند. این گزینه به‌ویژه هنگام درخواست گره‌های غیربرگ درخت PMNS برای گزارش‌گیری در حالتی که متریک‌های مرتبط متاداده‌های متفاوتی دارند مفید است.
هنگام نوشتن یک بایگانی PCP، متن‌های راهنمای متریک PCP را در بایگانی ایجادشده می‌گنجاند.
پالایش زندهٔ نمونه‌ها را انجام می‌دهد. این کار امکان ثبت تمام نمونه‌های نام‌گذاری‌شده را فراهم می‌کند حتی اگر فرایندها در مقطعی مجدداً راه‌اندازی شوند (برخلاف حالت بدون پالایش زنده). انجام پالایش زنده روی تعداد بسیار زیادی از نمونه‌ها مقداری سربار داخلی ایجاد خواهد کرد، بنابراین احتیاط کاربر توصیه می‌شود. همچنین ببینید -1 و -n.
نتایج را به بالاترین/پایین‌ترین نمونه‌های rank-شدهٔ متریک‌های چندمقداری (set-valued) محدود می‌کند. یک عدد صحیح مثبت نمونه‌های با بالاترین مقدار را در گزارش لحاظ می‌کند. یک عدد صحیح منفی نمونه‌های با پایین‌ترین مقدار را در گزارش لحاظ می‌کند. مقدار صفر هیچ رتبه‌بندی‌ای انجام نمی‌دهد. رتبه‌بندی به معنای مرتب‌سازی نیست، ببینید -6. همچنین ببینید -2 و -8.
خروجی CSV گسترش‌یافته، مشابه با sadf(1) می‌نویسد. همچنین ببینید --csv-unit-info.
هنگام واکشی متریک‌ها از یک بافت محلی (ببینید -L)، گزینهٔ -K می‌تواند برای کنترل DSO PMDAهایی که باید قابل دسترسی باشند استفاده شود. آرگومان spec از ساختار نحو توصیف‌شده در pmSpecLocalPMDA(3) پیروی می‌کند. می‌توان از بیش از یک گزینهٔ -K استفاده کرد.
جداکننده‌ای (delimiter) را تعیین می‌کند که هر ستون از خروجی csv یا stdout را جدا می‌سازد. پیش‌فرض برای stdout دو فاصله (“ ”) و برای csv کاما (“,”) است. هنگام استفاده از جداکننده‌ای غیر از فاصله، تمام نمونه‌های آن جداکننده در مقادیر رشته‌ای با نویسهٔ خط زیرین (“_”) جایگزین خواهند شد. توجه داشته باشید که بسیاری از مجموعه‌متریک‌های پیش‌فرض یک جداکننده مشخص می‌کنند (که ممکن است کاما نباشد)، بنابراین شاید لازم باشد از این گزینه به همراه مجموعه‌متریک‌ها استفاده شود تا صراحتاً جداکننده برای خروجی CSV روی کاما تنظیم گردد، یعنی --delimiter=,
از یک بافت محلی برای جمع‌آوری متریک‌ها از DSO PMDAها روی میزبان محلی بدون PMCD استفاده می‌کند. همچنین ببینید -K.
برچسب‌های متریک PCP را در خروجی می‌گنجاند.
رتبه‌بندی را قبل از پالایش زنده انجام می‌دهد. به‌طور پیش‌فرض، پالایش زندهٔ نمونه‌ها (در صورت درخواست، ببینید -j) قبل از رتبه‌بندی نمونه‌ها (در صورت درخواست، ببینید -J) انجام می‌شود. با این گزینه، منطق معکوس شده و رتبه‌بندی قبل از پالایش زنده رخ می‌دهد.
فهرستی جداشده با کاما از متریک‌های مرجع پالایهٔ predicate را مشخص می‌کند. به‌طور پیش‌فرض، رتبه‌بندی (ببینید -J) برای هر متریک به صورت جداگانه صورت می‌گیرد. با گزاره‌ها (predicates)، رتبه‌بندی تنها برای متریک‌های گزارهٔ مشخص‌شده انجام می‌شود. هنگام گزارش‌گیری، باقی متریک‌هایی که دامنهٔ نمونهٔ (instance domain) یکسانی با گزاره دارند (ببینید PCPIntro(1)) تنها شامل نمونه‌هایی از گزارهٔ متناظر خواهند بود که بالاترین/پایین‌ترین رتبه را کسب کرده‌اند. رتبه‌بندی به معنای مرتب‌سازی نیست، ببینید -6. بنابراین برای نمونه، استفاده از proc.memory.rss (اندازه حافظه مقیم فرایند) به‌عنوان متریک predicate همراه با proc.io.total_bytes و mem.util.used به‌عنوان متریک‌هایی برای گزارش، هنگام گزارش مجموع بایت‌های نوشته‌شده توسط فرایندها، تنها فرایندهایی که از بیشترین/کمترین (مطابق با -J) حافظه استفاده می‌کنند گنجانده خواهند شد. از آنجا که mem.util.used یک متریک تک‌مقداری است (و در نتیجه دامنه نمونه یکسانی با متریک‌های مرتبط با فرایند ندارد)، طبق معمول گزارش خواهد شد.

حذف اطلاعات نمونه (instance) از سرآیندها. در صورت استفاده از سرآیند جداگانه قابل اعمال نیست (نگاه کنید به -g).
استفاده از مقصد output برای گزارش‌دهی. مقصد پیش‌فرض stdout است. گزینه‌های در دسترس برای مقصد خروجی عبارتند از:
ضبط متریک‌ها درون یک بایگانی PCP که بعداً می‌تواند با ابزارهای PCP، از جمله خود pmrep بازپخش شود. برای جزئیات درباره فایل‌های بایگانی PCP نگاه کنید به LOGARCHIVE(5) و PCPIntro(1). نیازمند -F است.
چاپ متریک‌ها در قالب CSV (تابع گزینه‌های قالب‌بندی).
چاپ متریک‌ها در stdout (قالب آن تابع گزینه‌های قالب‌بندی است).
هنگام گزارش متریک‌های بایگانی‌شده، گزارش‌دهی را از origin درون بازه زمانی آغاز می‌کند (نگاه کنید به -S و -T). برای شرح کامل ساختار دستوری origin به PCPIntro(1) مراجعه کنید.
چاپ برچسب‌های زمانی. به‌طور پیش‌فرض هیچ برچسب زمانی چاپ نمی‌شود.
استفاده از precision برای مقادیر عددی غیر صحیح در خروجی. اگر مقدار برای عرض ستون خود بیش از حد عریض باشد، precision یکی یکی کاهش می‌یابد تا زمانی که مقدار جا شود، یا در صورتی که جا نشود اصلاً چاپ نخواهد شد. پیش‌فرض استفاده از ۳ رقم اعشار است (در صورت امکان). این گزینه مشخصات احتمالی اختصاصی هر متریک را بازنویسی نخواهد کرد.
واحد/مقیاس برای متریک‌های شمارشی؛ مقادیر ممکن شامل count x 10^-1, count, count x 10, count x 10^2, و به همین ترتیب از 10^-8 تا 10^7 است. (این مقادیر در حال حاضر به فاصله حساس هستند.) این گزینه مشخصات احتمالی اختصاصی هر متریک را بازنویسی نخواهد کرد. همچنین نگاه کنید به pmParseUnitsStr(3).
مشابه -q اما این گزینه مشخصات اختصاصی هر متریک را بازنویسی خواهد کرد.
خروجی دادن مقادیر خام متریک‌ها، شمارنده‌های تجمعی به نرخ تبدیل نمی‌شوند. هنگام نوشتن بایگانی‌ها، همواره از مقادیر خام استفاده می‌شود. این گزینه مشخصات احتمالی اختصاصی هر متریک را بازنویسی خواهد کرد.
مشابه -r اما این گزینه مشخصات اختصاصی هر متریک را بازنویسی نخواهد کرد.
آرگومان samples تعداد نمونه‌هایی را که باید دریافت و گزارش شوند تعریف می‌کند. اگر samples برابر 0 باشد یا -s مشخص نشده باشد، pmrep به‌طور پیوسته (در حالت بلادرنگ) یا تا انتهای مجموعه بایگانی‌های PCP (در حالت بایگانی) نمونه‌برداری و گزارش‌دهی خواهد کرد. همچنین نگاه کنید به -T.
هنگام گزارش متریک‌های بایگانی‌شده، گزارش محدود به رکوردهایی خواهد بود که در زمان starttime یا پس از آن ثبت شده باشند. برای شرح کامل ساختار دستوری starttime به PCPIntro(1) مراجعه کنید.
تنظیم interval گزارش‌دهی به مقداری غیر از مقدار پیش‌فرضِ ۱ ثانیه. آرگومان interval از ساختار دستوری شرح داده شده در PCPIntro(1) پیروی می‌کند، و در ساده‌ترین شکل می‌تواند یک عدد صحیح بدون علامت باشد (واحد ضمنی در این حالت ثانیه است). همچنین نگاه کنید به گزینه‌های -T و -u.
هنگام گزارش متریک‌های بایگانی‌شده، گزارش محدود به رکوردهایی خواهد بود که قبل از endtime یا در همان زمان ثبت شده باشند. برای شرح کامل ساختار دستوری endtime به PCPIntro(1) مراجعه کنید.

هنگامی که برای تعیین مدت زمان اجرا پیش از خروج pmrep استفاده می‌شود، اگر هیچ samples داده نشده باشد (نگاه کنید به -s)، تعداد نمونه‌های گزارش‌شده به interval بستگی خواهد داشت (نگاه کنید به -t). اگر samples داده شده باشد، آنگاه interval تنظیم خواهد شد تا امکان گزارش‌دهیِ samples در طول زمان اجرا فراهم شود. در صورتی که هر سه گزینهٔ -T, -s, و -t داده شده باشند، endtime زمان واقعی اجرای pmrep را تعیین می‌کند.

هنگام گزارش متریک‌های بایگانی‌شده، به‌طور پیش‌فرض مقادیر بر اساس بازه نمونه‌برداری انتخاب‌شده (گزینهٔ -t ) گزارش می‌شوند، نه بر اساس بازه زمانی واقعی رکوردها در یک بایگانی. بدین منظور، PCP مقادیر مورد گزارش را بر اساس رکوردهای بایگانی درونیابی می‌کند. با گزینهٔ -u گزارش‌دهی درونیابی‌نشده فعال می‌شود، هر مقدار ثبت‌شده برای متریک‌های انتخاب‌شده گزارش می‌گردد و بازه نمونه‌برداری درخواستی (-t) نادیده گرفته می‌شود. بنابراین برای مثال، اگر یک بایگانی PCP حاوی مقادیر ثبت‌شده برای هر ۱۰ ثانیه باشد و بازه نمونه‌برداری درخواستی ۱ ساعت باشد، به‌طور پیش‌فرض pmrep از یک طرح درون‌یابی برای محاسبه مقادیر معیارهای درخواستی از روی مقادیر ثبت‌شده در مجاورت این معیارهای درخواستی استفاده می‌کند و مقادیر برای هر ۱ ساعت گزارش می‌شوند. با -u هر رکورد در هر ۱۰ ثانیه به همان صورت گزارش داده می‌شود (مقادیر گزارش‌شده همچنان مشمول تبدیل نرخ هستند؛ برای غیرفعال کردن از -r یا -R استفاده کنید).

حذف اطلاعات یکا از سرآیندهای stdout.
تنها گزارش معیارهای مجموعه‌مقدار دارای نمونه (مانند disk.dev.read) و صرف‌نظر کردن از معیارهای تک‌مقداری «تخت» فاقد نمونه (مانند kernel.all.sysfork). ببینید: -i و -I.
نمایش شماره نسخه و خروج.
تنظیم width (عرض) ستون خروجی stdout. رشته‌ها تا این عرض بریده خواهند شد. مقدار width پیش‌فرض، کوتاه‌ترین مقداری است که برچسب متنی معیار در آن جا می‌شود؛ حداقل مقدار اجباری ۳ است. این گزینه مشخصات احتمالی مربوط به هر معیار را بازنویسی نخواهد کرد.
مانند -w اما این گزینه مشخصات مربوط به هر معیار را بازنویسی خواهد کرد.
چاپ سرآیند گسترش‌یافته.
جابه‌جایی ستون‌ها و سطرها در خروجی stdout، گزارش یک نمونه در هر سطر، با استفاده از label به‌عنوان برچسب متنی ستون نمونه‌ها. برای فعال کردن جابه‌جایی بدون یک برچسب ستون مشخص، از یک رشته خالی ("") استفاده کنید. این تغییر در خروجی امکان استفاده از grep(1) را برای فیلتر کردن نتایج یا شبیه‌سازی نزدیک‌تر ابزارهای دیگر فراهم می‌کند. همچنین ببینید: -i و -6.
یکا/مقیاس برای معیارهای زمانی؛ مقادیر ممکن شامل nanosec، ns، microsec، us، millisec، ms و به همین ترتیب تا hour، hr. این گزینه مشخصات احتمالی مربوط به هر معیار را بازنویسی نخواهد کرد. همچنین ببینید: pmParseUnitsStr(3).
مانند -y اما این گزینه مشخصات مربوط به هر معیار را بازنویسی خواهد کرد.
استفاده از منطقه زمانی محلی میزبانی که منبع معیارهای کارایی است، همان‌طور که توسط گزینه‌های -h یا -a مشخص شده است. حالت پیش‌فرض، استفاده از منطقه زمانی میزبان محلی است.
استفاده از timezone برای تاریخ و زمان. Timezone در قالب متغیر محیطی TZ است، همان‌گونه که در environ(7) شرح داده شده است. توجه داشته باشید که هنگام گنجاندن رشته منطقه زمانی در خروجی، آفست‌های UTC به سبک ISO 8601 استفاده می‌شوند (بنابراین موردی مانند -Z EST+5 به UTC-5 تبدیل خواهد شد).
-?, --help
نمایش پیام راهنما و خروج..SH "مثال‌ها (EXAMPLES)" مثال‌های زیر از امکانات استاندارد PCP برای جمع‌آوری مقادیر متریک‌ها استفاده می‌کنند و نیازی به ابزارهای بیرونی نیست. مجموعه‌متریک‌های (.IR metricsets ) ارجاع‌شده که با دو‌نقطه آغاز می‌شوند، بخشی از پیکربندی پیش‌فرض pmrep هستند. در bash و zsh، کلید Tab گزینه‌های موجود، متریک‌ها و پس از دونقطه مجموعه‌متریک‌ها را به‌طور خودکار تکمیل می‌کند.

نمایش متریک‌های رابط شبکه در میزبان محلی:

$ pmrep network.interface.total.bytes

نمایش تمامی متریک‌های خروجی شبکه برای رابط wlan0:

$ pmrep -i wlan0 -v network.interface.out

نمایش مجموع مصرف slab (به مگابایت) برای دو نمونهٔ slab مشخص:

$ pmrep mem.slabinfo.slabs.total_size,,'kmalloc-4k|xfs_inode',MB

نمایش اطلاعات دارای برچسب زمان، شبیه به vmstat(8) با استفاده از مگابایت به جای کیلوبایت، به همراه تعداد inodeهای استفاده‌شده:

$ pmrep -p -B MB :vmstat vfs.inodes.count

نمایش خواندن و نوشتن دیسک به‌ازای هر دستگاه از میزبان server1 با بازه زمانی دو ثانیه و با قالب خروجی CSV مشابه با sadf(1):

$ pmrep -h server1 -t 2s -o csv -k disk.dev.read disk.dev.write

نمایش فرایندهایی با حداقل ۱۰۰ مگابایت مصرف حافظه با استفاده از سرآیندهای پویا، علاوه بر این استفاده از -g جهت نمایش نام کامل نمونه‌ها (فرایندها):

$ pmrep -b MB --limit-filter 100 --dynamic-header proc.memory.rss

نمایش مجموعه‌متریک از‌پیش‌تعریف‌شده از pmrep.conf(5) پیش‌فرض حاوی جزئیات مربوط به درخواست‌های I/O توسط فرایند(های) جاری pmlogger:

$ pmrep -gp -i pmlogger :proc-io

نمایش سه فرایندی که بیشترین مصرف CPU را دارند:

$ pmrep -1gUJ 3 proc.hog.cpu

نمایش هم‌زمان اطلاعاتی شبیه به sar -w و sar -W از آرشیو PCP در مسیر ./20150921.09.13 که مقادیر ثبت‌شده بین ساعات ۱۵ تا ۱۷ را نشان می‌دهد:

$ pmrep -a ./20150921.09.13 -S @15:00 -T @17:00 :sar-w :sar-W

ضبط مرتبط‌ترین اطلاعات مربوط به CPU، حافظه و I/O برای تمامی فرایندهای جاوا روی سامانه (فعلی و آینده) در آرشیو ./a با فواصل زمانی یک‌دقیقه‌ای در رأس هر دقیقه در یک فرایند پس‌زمینه:

$ pmrep --daemonize -A 1m -t 1m -i '.*java.*' -j -o archive -F ./a \
    :proc-info :proc-cpu :proc-mem :proc-io

ضبط تمامی متریک‌های 389 Directory Server، سیستم‌فایل XFS، و CPU/حافظه/دیسک هر پنج ثانیه یک‌بار به مدت پنج دقیقه در آرشیو PCP در ./a:

$ pmrep -t 5s -T 5m -o archive -F ./a ds389 xfs kernel.all.cpu mem disk

ضبط اطلاعات حافظه و I/O برای سه فرایندی که بیشترین مصرف حافظه را دارند:

$ pmrep -o archive -F ./a -J 3 -N proc.memory.rss proc.memory proc.io
فایل پیکربندی pmrep (رجوع کنید به -c)
$PCP_SYSCONF_DIR/pmrep/*.conf
فایل‌های پیکربندی پیش‌فرض pmrep ارائه‌شده توسط سیستم

متغیرهای محیطی با پیشوند PCP_ برای تعیین پارامترهای نام فایل‌ها و دایرکتوری‌های مورداستفاده توسط PCP به کار می‌روند. در هر بار نصب، فایل /etc/pcp.conf حاوی مقادیر محلی این متغیرها است. متغیر $PCP_CONF ممکن است برای تعیین یک فایل پیکربندی جایگزین استفاده شود، همان‌طور که در pcp.conf(5) شرح داده شده است.

برای مشاهدهٔ متغیرهای محیطی مؤثر بر ابزارهای PCP، به pmGetOptions(3) مراجعه کنید.

به‌طور ویژه، PCP_DISCRETE_ONCE می‌تواند تنظیم شود تا اطمینان حاصل شود مقادیر معیارهای گسسته تنها یک بار گزارش می‌شوند، مگر اینکه در زمانی تغییر کنند.

گزینهٔ -D یا --debug خروجی عیب‌یابی‌های اضافی را روی stderr فعال می‌کند تا به بررسی و ارزیابی مشکلات کمک کند، هرچند که اطلاعات گاهی مبهم بوده و در درجهٔ اول برای راهنمایی توسعه‌دهندگان به‌جای کاربران نهایی در نظر گرفته شده است. debug یک فهرست جداشده با کاما از گزینه‌های اشکال‌زدایی است؛ از pmdbg(1) همراه با گزینهٔ -l برای به‌دست آوردن فهرستی از گزینه‌های اشکال‌زدایی موجود و معانی آن‌ها استفاده کنید.

گزینه‌های اشکال‌زدایی ویژهٔ pmrep به شرح زیر هستند:

گزینه توضیحات
appl1 تخلیهٔ کلیدواژه‌ها برای پیکربندی‌ها و مشخصات
derive تخلیهٔ جزئیات هنگام تجزیهٔ هر معیار مشتق‌شده

PCPIntro(1), mkaf(1), pcp(1), pcp2elasticsearch(1), pcp2graphite(1), pcp2influxdb(1), pcp2json(1), pcp2spark(1), pcp2xlsx(1), pcp2xml(1), pcp2zabbix(1), pcp-atop(1), pmcd(1), pmchart(1), pmdiff(1), pmdumptext(1), pminfo(1), pmiostat(1), pmlogdump(1), pmlogextract(1), pmlogsummary(1), pmprobe(1), pmstat(1), pmval(1), sadf(1), sar(1), PMAPI(3), pmGetOptions(3), pmLoadDerivedConfig(3), pmParseUnitsStr(3), pmRegisterDerived(3), pmSpecLocalPMDA(3), strftime(3), LOGARCHIVE(5), PMNS(5), pcp.conf(5), pmrep.conf(5), environ(7) و vmstat(8).

PCP Performance Co-Pilot