PMDAMMV(1) General Commands Manual PMDAMMV(1)

pmdammv - عامل دامنه معیارهای کارایی برای مقادیر نگاشت‌شده در حافظه (PMDA)

$PCP_PMDAS_DIR/mmv/pmdammv [-D debug] [-d domain] [-l logfile] [-U username]

pmdammv یک عامل دامنه معیارهای کارایی (PMDA) است که معیارهای کارایی سطح برنامه را با استفاده از فایل‌های نگاشت‌شده در حافظه صادر می‌کند. این ابزار امکان سنجش (instrumentation) بسیار کم‌سرباری را فراهم می‌آورد که برای برنامه‌های طولانی‌اجرا و حیاتی که در آن‌ها فعال بودن دائمی معیارهای کارایی و اطلاعات دسترسی‌پذیری نیاز است، بسیار مناسب است.

عامل mmv داده‌های سنجشی را که با استفاده از رابط‌های برنامه‌نویسی کاربردی (APIهای) MMV به برنامه افزوده شده‌اند صادر می‌کند (برای جزئیات بیشتر به mmv_stats_init(3) و mmv(5) مراجعه کنید). این APIها از چندین زبان مختلف از جمله C، C++، Perl، Python، Java (از طریق کتابخانه کلاس مجزای «Parfait») و GoLang (از طریق کتابخانه مجزای «Speed») قابل فراخوانی هستند.

شرح مختصری از گزینه‌های خط فرمان pmdammv در ادامه آمده است:

بسیار حیاتی است که شماره domain (دامنه) معیارهای کارایی مشخص‌شده در اینجا یکتا و سازگار باشد. یعنی domain باید برای هر PMDA روی یک میزبان متفاوت باشد، و شماره domain یکسان باید برای همان PMDA در تمام میزبان‌ها استفاده شود.
محل فایل وقایع (لاگ). به‌طور پیش‌فرض، زمانی که pmdammv راه‌اندازی می‌شود، یک فایل وقایع به نام mmv.log در دایرکتوری جاری pmcd(1) نوشته می‌شود، یعنی $PCP_LOG_DIR/pmcd. اگر فایل وقایع نتواند ایجاد شود یا قابل نوشتن نباشد، خروجی در خطای استاندارد نوشته می‌شود.
حساب کاربری که عامل تحت آن اجرا می‌شود. پیش‌فرض در نسخه‌های فعلی PCP حساب غیرممتاز "pcp" است، اما در نسخه‌های قدیمی‌تر، حساب مدیر سیستم ("root") به‌طور پیش‌فرض استفاده می‌شد.

در وهله اول، باید یک مدل امنیتی برای ارتباط بین‌فرآیندی میان برنامه‌های سنجیده‌شده و pmdammv (که به عنوان یک کتابخانه اشتراکی درون pmcd اجرا می‌شود) انتخاب و برقرار گردد.

این ارتباط از طریق فایل‌های نگاشت‌شده در حافظه در مکانی رخ می‌دهد که برای هر دو pmdammv و برنامه‌های سنجیده‌شده شناخته‌شده است. آن مکان $PCP_TMP_DIR/mmv است، اگرچه این مسیر اغلب در پشت APIهای برنامه‌نویسی مانند «Parfait» و mmv_stats_init(3) پنهان شده است. مجوزهای تنظیم‌شده روی این دایرکتوری، مدل امنیتیِ در حال استفاده را مشخص می‌کنند.

روش امن‌تر، استفاده از یک گروه غیرممتاز موجود است که بین برنامه‌های سنجیده‌شده، pmcd و pmdammv به اشتراک گذاشته شده باشد، مانند گروه "pcp".

# . /etc/pcp.env
# mkdir -m 775 $PCP_TMP_DIR/mmv
# chgrp pcp $PCP_TMP_DIR/mmv

از آنجا که این روش مستلزم استفاده برنامه‌های سنجیده‌شده از این گروه غیرپیش‌فرض است (نگاه کنید به newgrp(1) و setgid(2))، یک جایگزین رایج، استفاده از یک دایرکتوری $PCP_TMP_DIR/mmv با قابلیت نوشتن همگانی (world-writable) به همراه تنظیم بودن بیت چسبنده (sticky-bit) است (برای مثال، مشابه /tmp و /var/tmp).

این کار به هر برنامه‌ای، در حال اجرا تحت هر حساب کاربری، اجازه می‌دهد تا با PMDA (که به‌طور پیش‌فرض تحت حساب "pcp" اجرا می‌شود) ارتباط برقرار کند. این وضعیت ممکن است برای همه محیط‌ها مطلوب نباشد و باید پیامدهای امنیتی هرگونه راه‌اندازی دایرکتوری به این شکل را در نظر گرفت (دسته‌های مشابهی از مشکلات وجود دارند که دایرکتوری‌های موقت سیستم را نیز تحت تأثیر قرار می‌دهند).

pmdammv به‌طور پیش‌فرض در تمام نصب‌های مدرن PCP فعال است، و از این رو نام‌ها، متن راهنما و مقادیر معیارهای کارایی mmv بدون نیاز به فرایند معمول ‎./Install‎ مربوط به PMDA در دسترس هستند.

اگر دایرکتوری $PCP_TMP_DIR/mmv وجود نداشته باشد، می‌توان از اسکریپت ./Install برای ایجاد یک دایرکتوری با دسترسی نوشتن همگانی و دارای بیت چسبنده (sticky-bit) جهت برقراری ارتباط استفاده کرد. این کار هم برای سازگاری با نسخه‌های قبلی و هم برای سهولت استفاده است - برای استفاده از این سازوکار، مراحل زیر را با دسترسی root انجام دهید:

# rmdir $PCP_TMP_DIR/mmv
# cd $PCP_PMDAS_DIR/mmv
# ./Install

این فرایند نصب هیچ دایرکتوری موجود $PCP_TMP_DIR/mmv را بازنویسی نخواهد کرد.

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

# cd $PCP_PMDAS_DIR/mmv
# ./Remove

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

$PCP_PMCDCONF_PATH
گزینه‌های خط فرمان مورد استفاده برای راه‌اندازی pmdammv
$PCP_TMP_DIR/mmv
دایرکتوری نگه‌دارنده فایل‌های مقادیر نگاشت‌شده در حافظه
$PCP_PMDAS_DIR/mmv/help
فایل متنی راهنمای پیش‌فرض برای معیارهای mmv
$PCP_PMDAS_DIR/mmv/Install
اسکریپت نصب برای عامل pmdammv
$PCP_PMDAS_DIR/mmv/Remove
اسکریپت لغو نصب برای عامل pmdammv
$PCP_LOG_DIR/pmcd/mmv.log
فایل وقایع پیش‌فرض برای پیام‌های خطا و سایر اطلاعات از pmdammv

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

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

گزینه‌های اشکال‌زدایی اختصاصی pmdammv به شرح زیر است:

گزینه توضیحات
appl0 پیام‌های تشخیصی با جزئیات (verbose)

PCPIntro(1), pmcd(1), newgrp(1), setgid(2), mmv_stats_init(3), mmv(5), pcp.conf(5) و pcp.env(5).

PCP Performance Co-Pilot