PMDABASH(1) General Commands Manual PMDABASH(1)

pmdabash - عامل دامنه معیارهای کارایی برای ردگیری شل Bourne-Again

$PCP_PMDAS_DIR/bash/pmdabash [-C] [-D debug] [-d domain] [-l logfile] [-I interval] [-t timeout] [-U username] configfile

pmdabash یک «عامل دامنه معیارهای کارایی» (PMDA) آزمایشی است که رویدادهای «xtrace» را از یک فرایند ردیابی‌شدهٔ bash(1) صادر می‌کند. این شامل اطلاعات اجرای دستوری است که معمولاً با گزینهٔ set -x شل به خروجی خطای استاندارد ارسال می‌شود.

معیارهای رویداد صادر شده، هر دستور اجرا شده، نام تابع و شماره خط در اسکریپت و یک برچسب زمان را نمایش می‌دهند. علاوه بر این، شناسه فرایند (PID) مربوط به شل و فرایند والد آن نیز صادر می‌شود.

این نیازمند bash نسخهٔ ۴ یا بالاتر است.

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

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

برای اینکه یک میزبان بتواند نام‌ها، متن راهنما و مقادیر معیارهای کارایی bash را صادر کند، دستورات زیر را به عنوان ریشه (root) انجام دهید:

# cd $PCP_PMDAS_DIR/bash
# ./Install

به محض اینکه یک اسکریپت شل مجهز شده (بخش «تجهیز کد (INSTRUMENTATION)» در ادامه را ببینید) با فعال بودن ردگیری اجرا شود، مقادیر جدید معیارها ظاهر خواهند شد؛ هیچ پیکربندی بیشتری برای عامل لازم نیست.

اگر می‌خواهید نصب را لغو کنید، کارهای زیر را به عنوان ریشه (root) انجام دهید:

# cd $PCP_PMDAS_DIR/bash
# ./Remove

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

به منظور برقراری جریان داده‌های رویداد میان یک اسکریپت bash(1) و pmdabash، اسکریپت باید اقدامات زیر را انجام دهد:

#!/bin/sh
source $PCP_DIR/etc/pcp.env
source $PCP_SHARE_DIR/lib/bashproc.sh
pcp_trace on $@       # enable tracing
echo "awoke, $count"
pcp_trace off         # disable tracing

ردگیری می‌تواند به هر تعداد دلخواه توسط اسکریپت فعال و غیرفعال شود. پس از نصب موفقیت‌آمیز عامل، چندین معیار در دسترس خواهند بود:

$ pminfo bash
bash.xtrace.numclients
bash.xtrace.maxmem
bash.xtrace.queuemem
bash.xtrace.count
bash.xtrace.records
bash.xtrace.parameters.pid
bash.xtrace.parameters.parent
bash.xtrace.parameters.lineno
bash.xtrace.parameters.function
bash.xtrace.parameters.command

هنگامی که یک اسکریپت مجهز در حال اجرا است، می‌توان ایجاد رکوردهای رویداد را با استفاده از دستور pmevent(1) به شکل زیر بررسی و تأیید کرد:

$ pmevent -t 1 -x '' bash.xtrace.records
host:      localhost
samples:   all
bash.xtrace.records["4538 ./test-trace.sh 1 2 3"]: 5 event records
  10:00:05.000 --- event record [0] flags 0x19 (point,id,parent) ---
    bash.xtrace.parameters.pid 4538
    bash.xtrace.parameters.parent 4432
    bash.xtrace.parameters.lineno 43
    bash.xtrace.parameters.command "true"
  10:00:05.000 --- event record [1] flags 0x19 (point,id,parent) ---
    bash.xtrace.parameters.pid 4538
    bash.xtrace.parameters.parent 4432
    bash.xtrace.parameters.lineno 45
    bash.xtrace.parameters.command "((  count++  ))"
  10:00:05.000 --- event record [2] flags 0x19 (point,id,parent) ---
    bash.xtrace.parameters.pid 4538
    bash.xtrace.parameters.parent 4432
    bash.xtrace.parameters.lineno 46
    bash.xtrace.parameters.command "echo 'awoke, 3'"
  10:00:05.000 --- event record [3] flags 0x19 (point,id,parent) ---
    bash.xtrace.parameters.pid 4538
    bash.xtrace.parameters.parent 4432
    bash.xtrace.parameters.lineno 47
    bash.xtrace.parameters.command "tired 2"
  10:00:05.000 --- event record [4] flags 0x19 (point,id,parent) ---
    bash.xtrace.parameters.pid 4538
    bash.xtrace.parameters.parent 4432
    bash.xtrace.parameters.lineno 38
    bash.xtrace.parameters.function "tired"
    bash.xtrace.parameters.command "sleep 2"

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

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

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

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

گزینه توضیحات
appl0 ثبت وقایع با جزئیات (verbose) برای رویدادهای مورد نظر

bash(1)، pmevent(1) و pmcd(1).

PCP Performance Co-Pilot