PMDAPERFEVENT(1) General Commands Manual PMDAPERFEVENT(1)

pmdaperfevent - عامل دامنه معیارهای کارایی (PMDA) برای شمارنده‌های کارایی سخت‌افزار

$PCP_PMDAS_DIR/perfevent/pmdaperfevent [-d domain] [-l logfile] [-U username] [-i port] [-p] [-u socket] [-6]

برنامه pmdaperfevent یک عامل دامنه معیارهای کارایی (PMDA) است که با استفاده از رابط برنامه‌نویسی (API) perf_event در هسته لینوکس، شمارنده‌های کارایی سخت‌افزار را پیکربندی کرده و می‌خواند.

عامل perfevent معیارهایی را برای شمارنده‌های کارایی سخت‌افزاری که از طریق APIِ perf_event هسته لینوکس قابل پیکربندی هستند، ارائه می‌دهد. این PMDA از کتابخانه libpfm4 برای دسترسی به شمارنده‌های کارایی سخت‌افزار استفاده می‌کند؛ بنابراین هر شمارنده‌ای که در libpfm4 پشتیبانی شود باید در دسترس باشد. همچنین قابلیت خواندن شمارنده‌های Intel RAPL از طریق دسترسی مستقیم به MSR فراهم شده است. این PMDA از بارگذاری خودکار شمارنده‌های مختلف برای هر معماری سخت‌افزار پشتیبانی می‌کند. از یک فایل پیکربندی واحد برای تعیین شمارنده‌های مورد نظر برای هر واحد پایش کارایی سخت‌افزار (PMU) استفاده می‌شود. فایل پیکربندی اجازه می‌دهد شمارنده‌های مختلف روی CPUهای مختلف برنامه‌ریزی شوند و از تخصیص نوبتی (round-robin) شمارنده‌های uncore که برای برخی تراشه‌های AMD نیاز است پشتیبانی می‌کند.

این PMDA همچنین رویدادهایی را که در هسته از طریق دایرکتوری /sys/bus/event_source/devices ارائه شده‌اند شمارش می‌کند. نام دستگاه PMU و نام رویداد باید در فایل پیکربندی ذکر شوند؛ در غیر این صورت، این معیار برای نظارت از طریق این PMDA در دسترس نخواهد بود.

این PMDA شمارنده‌ها را برای شمارش رویدادها در هر دو حالت کاربر (user mode) و هسته (kernel mode) پیکربندی می‌کند. این بدان معناست که وقتی شمارنده‌های سخت‌افزاری توسط PMDA در حال استفاده هستند، برنامه‌های کاربردی عادی و بدون امتیاز ویژه (unprivileged) نمی‌توانند از آن‌ها استفاده کنند. این PMDA سازوکاری برای غیرفعال‌سازی موقت شمارنده‌های سراسری سیستم ارائه می‌دهد تا به کاربران عادی اجازه دهد در صورت تمایل از شمارنده‌ها استفاده کنند. برای جزئیات بیشتر به perfalloc(1) مراجعه کنید.

توجه داشته باشید که pmdaperfevent تحت تأثیر مقدار تنظیم kernel.perf_event_paranoid قرار دارد که می‌تواند توسط sysctl(8) تنظیم شود.

توضیح مختصری از گزینه‌های خط فرمان pmdaperfevent در ادامه آمده است:

بسیار حیاتی است که شماره دامنه (domain) معیارهای کارایی که در اینجا مشخص می‌شود، یکتا و سازگار باشد. به این معنا که domain باید برای هر PMDA روی یک میزبان متفاوت باشد، و شماره domain یکسان باید برای همان PMDA روی تمام میزبان‌ها استفاده شود.
مسیر فایل ثبت وقایع (log). به‌طور پیش‌فرض، هنگامی که pmdaperfevent راه‌اندازی می‌شود، یک فایل لاگ به نام perfevent.log در دایرکتوری جاری pmcd(1) نوشته می‌شود، یعنی $PCP_LOG_DIR/pmcd. اگر فایل لاگ نتواند ایجاد شود یا قابل نوشتن نباشد، خروجی به‌جای آن در خطای استاندارد نوشته خواهد شد.
حساب کاربری که عامل تحت آن اجرا می‌شود. پیش‌فرض، حساب با دسترسی ریشه (root) است.
شنود روی شماره پورت مشخص‌شده برای اتصال از طرف pmcd(1)
برقراری ارتباط با pmcd(1) از طریق stdin/stdout
انتظار برای اتصال pmcd(1) روی سوکت یونیکس (unix domain socket) مشخص‌شده
-6
انتظار برای اتصال pmcd(1) روی پورت ipv6 مشخص‌شده (شماره یا نام)

عامل perfevent به‌طور پیش‌فرض فعال نیست. برای نصب این PMDA، مراحل زیر را با دسترسی root انجام دهید:

# cd $PCP_PMDAS_DIR/perfevent
# ./Install

اگر می‌خواهید نصب را لغو کنید (حذف نصب)، مراحل زیر را با دسترسی root انجام دهید:

# cd $PCP_PMDAS_DIR/perfevent
# ./Remove

برنامه pmdaperfevent توسط pmcd(1) راه‌اندازی می‌شود و هرگز نباید مستقیماً اجرا گردد. اسکریپت‌های Install و Remove هنگام نصب یا حذف عامل، به pmcd(1) اطلاع می‌دهند.

$PCP_PMCDCONF_PATH
گزینه‌های خط فرمان مورد استفاده برای راه‌اندازی pmdaperfevent
$PCP_PMDAS_DIR/perfevent/perfevent.conf
فایل پیکربندی پیش‌فرض برای این PMDA. برای اطلاعات تفصیلی به perfevent.conf(5) مراجعه کنید.
$PCP_PMDAS_DIR/perfevent/help
فایل متنی راهنمای پیش‌فرض برای معیارهای perfevent
$PCP_PMDAS_DIR/perfevent/Install
اسکریپت نصب برای عامل pmdaperfevent
$PCP_PMDAS_DIR/perfevent/Remove
اسکریپت لغو نصب برای عامل pmdaperfevent
$PCP_LOG_DIR/pmcd/perfevent.log
فایل لاگ پیش‌فرض برای پیام‌های خطا و سایر اطلاعات حاصل از pmdaperfevent

از نسخه ۳.۱۰.۸ برخی از نام‌های معیارها تغییر کرده‌اند تا سازگاری بهتری با قراردادهای PMNS داشته باشند. می‌توان از pmlogrewrite(1) برای به‌روزرسانی آرشیوهای قدیمی استفاده کرد. یک ابزار کمکی به نام $PCP_PMDAS_DIR/perfevent/perfevent-makerewrite.pl یک فایل پیکربندی مناسب برای استفاده با pmlogrewrite(1) تولید می‌کند تا نام معیارها را در آرشیوهای موجود به‌روز کند.

هر رویداد در گروه اختصاصی خود قرار می‌گیرد و راهی برای گروه‌بندی رویدادهای مرتبط با یکدیگر وجود ندارد تا تضمین شود که هم‌زمان فعال هستند. یک راهکار جایگزین برای این موضوع این است که مطمئن شوید تعداد رویدادهای پیکربندی‌شده کمتر یا مساوی با تعداد شمارنده‌های سخت‌افزاری موجود است. این کار باعث می‌شود که رویدادها توسط هسته تسهیم زمانی (time-multiplexed) نشوند و هم‌زمان فعال باشند.

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

perfalloc(1)، perfevent.conf(5)، PCPIntro(1)، pmcd(1)، pmlogrewrite(1)، PMAPI(3)، pcp.conf(5)، pcp.env(5) و sysctl(8).

PCP Performance Co-Pilot