| PMDAPROC(1) | General Commands Manual | PMDAPROC(1) |
نام (NAME)
pmdaproc - عامل دامنهٔ معیارهای کارایی فرایند (PMDA)
خلاصه دستور (SYNOPSIS)
$PCP_PMDAS_DIR/proc/pmdaproc [-AL] [-D debug] [-d domain] [-l logfile] [-r cgroup] [-U username]
توضیحات (DESCRIPTION)
دستور pmdaproc یک «عامل دامنهٔ معیارهای کارایی» (PMDA) است که معیارهای عملکردیِ توصیفکنندهٔ وضعیت تکتک فرایندهای در حال اجرا روی یک سیستم لینوکس را استخراج میکند.
عامل proc PMDA معیارهایی را ارائه میدهد که میزان مصرف حافظه، پردازنده و سایر منابع هر فرایند را به همراه اطلاعات خلاصهای از تمام فرایندهای در حال اجرا اندازهگیری میکنند. این موارد شامل خلاصههای جانمایی NUMA برای هر فرایند از /proc/<pid>/numa_maps از طریق معیارهای proc.numa_maps.* است. این PMDA از مشخصات هویتی (credentials) ارسالشده از سوی ابزار نظارتی PMAPI(3) که مشخصکنندهٔ کاربر درخواستکنندهٔ اطلاعات است استفاده میکند تا اطمینان حاصل شود تنها مقادیری که کاربر مجاز به دسترسی به آنها است بازگردانده میشوند. این فرایند مستلزم آن است که PMDA در طول مدت رسیدگی به درخواستها برای نمونهها (instances) و مقادیر، شناسههای کاربر و گروه مؤثر (effective UID/GID) خود را بهطور موقت تغییر دهد. به عبارت دیگر، فراخوانهای سیستمی برای استخراج اطلاعات، از جانب همان کاربری که درخواست را ایجاد کرده انجام میشوند و نه به عنوان یک کاربر ممتاز. سازوکارهای موجود برای انتقال مشخصات هویتی کاربر در صفحهٔ PCPIntro(1) بیشتر توضیح داده شدهاند.
شرح مختصری از گزینههای خط فرمان pmdaproc در ادامه آمده است:
- -A
- استفاده از مشخصات هویتی ارائهشده توسط ابزارهای کلاینت PMAPI را غیرفعال کرده و صرفاً همهچیز را تحت حساب «root» اجرا میکند. برای کنترل دقیقتر هنگام استفاده از pmcd(1) همراه با احراز هویت کلاینتهای راه دور، به بخش ACCESS CONFIGURATION در ادامه مراجعه کنید. تنها زمانی این گزینه را فعال کنید که خطرات مربوطه را درک کرده باشید و مطمئن باشید که تمامی دسترسیهای راه دور از سوی کاربران مطمئن انجام میگیرد. در صورت فعال بودن، کلاینتهای راه دورِ احراز هویتنشدهٔ PMAPI قادر خواهند بود به مقادیر معیارهای کارایی بالقوه حساسی دسترسی یابند که معمولاً یک کلاینت احراز هویتنشدهٔ PMAPI اجازهٔ دسترسی به آنها را ندارد. برای جزئیات بیشتر به CVE-2011-2495 و CVE-2012-3419 مراجعه کنید.
- -L
- دامنهٔ نمونههای (instance domain) مربوط به هر فرایند را که توسط اکثر معیارهای pmdaproc استفاده میشود، بهگونهای تغییر میدهد که رشتهها (threads) را نیز شامل شود.
- -d
- بسیار حیاتی است که شمارهٔ domain (دامنه) معیارهای کاراییِ مشخصشده در اینجا، یکتا و سازگار باشد. بدین معنا که domain باید برای هر PMDA در یک میزبان متفاوت باشد، و از همان شمارهٔ domain باید برای همان PMDA در تمامی میزبانها استفاده شود.
- -l
- محل فایل گزارش (log file). بهطور پیشفرض، هنگامی که pmdaproc راهاندازی میشود، یک فایل گزارش به نام proc.log در دایرکتوری جاریِ pmcd(1) نوشته میشود، یعنی $PCP_LOG_DIR/pmcd. اگر ایجاد فایل گزارش ممکن نباشد یا قابل نوشتن نباشد، خروجی در خروجی خطای استاندارد نوشته میشود.
- -r
- مجموعه فرایندهای ارائهشده در دامنهٔ نمونههای هر فرایند را تنها به فرایندهایی محدود میکند که در ظرف منبع cgroup مشخصشده قرار دارند. این گزینه دقت نظارت اختیاری دقیقتری فراهم میکند و همچنین میتواند برای کاهش منابع مصرفی توسط pmdaproc در حین درخواستها برای نمونهها و مقادیر به کار رود.
- -U
- حساب کاربری که عامل باید تحت آن اجرا شود. پیشفرض، حساب کاربری ممتاز «root» است که با جابهجاییهای seteuid (2) و setegid (2) برای دسترسی به بیشتر اطلاعات همراه است..SH "نمای کلی HOTPROC (HOTPROC OVERVIEW)" عامل دامنه معیارهای کارایی (PMDA) با نام pmdaproc شامل مجموعهای اضافی از معیارهای به ازای هر فرایند است که دامنه نمونههای آن به مجموعهای از فرایندهای «مورد توجه» یا «داغ» (hot) محدود شده است. برخلاف معیارهای پیشفرض ارائهشده توسط proc PMDA، که دامنه نمونهای برابر با تمام فرایندهای جاری دارند، معیارهای hot دارای دامنه نمونهای هستند که زیرمجموعهای از این مجموعه است. این دامنه نمونههای hotproc توسط یک گزاره (predicate) قابلپیکربندی تعیین میشود که در طول فواصل زمانی تازهسازی ارزیابی میگردد.
علاوه بر معیارهای معادل به ازای هر فرایند در proc، ابزار hotproc یک معیار cpuburn ارائه میدهد که میزان استفاده فرایند از پردازنده را در طول بازه زمانی تازهسازی مشخص میکند، معیارهای total که نشان میدهند فرایندهای «مورد توجه» چه مقدار از زمان در دسترس پردازنده را به خود اختصاص دادهاند، معیارهای predicate که مقادیر متغیرهای رزروشده (به زیر مراجعه کنید) را که در گزاره hotproc استفاده میشوند نشان میدهند، و معیارهای control برای کنترل عامل.
پیکربندی HOTPROC (HOTPROC CONFIGURATION)
فایل پیکربندی شامل یک گزاره است که برای تعیین قرارگیری یا عدم قرارگیری یک فرایند در مجموعه فرایندهای مورد توجه استفاده میشود.
یک فایل پیکربندی نمونه را میتوان در $PCP_PMDAS_DIR/proc/samplehotproc.conf یافت.
این فایل میتواند پس از اعمال هرگونه تغییرات به $PCP_PMDAS_DIR/proc/hotproc.conf کپی شود تا معیارهای hot را پیکربندی کند. رابطهای pmstore(1) و pmStore(3) نیز میتوانند استفاده شوند (در زیر شرح داده شده است).
این گزاره با استفاده از زبان مشخصشده در زیر توصیف میشود. نمادها بر اساس موارد مورد استفاده در زبانهای C(1) و awk(1) هستند.
- عملگرهای پیوند بولی (Boolean Connectives)
- && (و / and)، || (یا / or)، ! (نقیض / not)، () (تغییر حق تقدم)
- عملگرهای مقایسه اعداد (Number comparators)
- < , <= , > , >= , == , !=
- عملگرهای مقایسه رشتهها (String comparators)
- == , !=
- عملگرهای مقایسه رشته/الگو (String/Pattern comparators)
- ~ (رشته با الگو تطابق دارد) , !~ (رشته با الگو تطابق ندارد)
- متغیرهای رزروشده (Reserved variables)
- uid (شناسه کاربر؛ نوع عدد صحیح) uname (نام کاربر؛ نوع رشته)، gid (شناسه گروه؛ نوع عدد صحیح) gname (نام گروه؛ نوع رشته)، fname (نام فایل فرایند؛ نوع رشته)، psargs (نام فایل فرایند به همراه آرگومانها؛ نوع رشته)، cpuburn (میزان مصرف پردازنده؛ نوع اعشاری float)، iodemand (تقاضای ورودی/خروجی - کیلوبایت خوانده/نوشتهشده در هر ثانیه؛ نوع اعشاری float)، ctxswitch (تعداد تعویض زمینه در ثانیه؛ نوع اعشاری float)، syscalls (تعداد فراخوانیهای سیستمی در ثانیه؛ نوع اعشاری float)، virtualsize (اندازه حافظه مجازی بر حسب کیلوبایت؛ نوع اعشاری float)، residentsize (اندازه حافظه مقیم بر حسب کیلوبایت؛ نوع اعشاری float)، iowait (انتظار مسدودشده و خام برای ورودی/خروجی بر حسب ثانیه/ثانیه؛ نوع اعشاری float)، schedwait (مدت زمان انتظار در صف زمانبندی اجرا بر حسب ثانیه/ثانیه؛ نوع اعشاری float).
- مقادیر صریح (Literal values)
- 1234 (عدد صحیح مثبت)، 0.35 (اعشاری مثبت)، "foobar" (رشته؛ محصور در ")، /[fF](o)+bar/ (الگو؛ محصور در /)، true (بولی)، false (بولی)
- توضیحات (Comments)
- #this is a comment (از # تا پایان سطر).
- مثالها (Examples)
-
cpuburn > 0.2 # cpu utilization of more than 20%
cpuburn > 0.2 && uname == "root"
cpuburn > 0.2 && (uname == "root" || uname == "hot")
psargs ~ /pmda/ && cpuburn > 0.4
معیارهای hotproc.predicate میتوانند برای مشاهده مقادیر متغیرهای رزروشدهای استفاده شوند که در آخرین تازهسازی توسط گزاره استفاده شدهاند. آنها متغیرهای رزروشدهای را که از پیش در جای دیگری صادر شدهاند پوشش نمیدهند. اگر به متغیری در گزاره پیکربندی ارجاع داده نشده باشد، معیار hotproc.predicate ممکن است مقداری نداشته باشد..SH "پیکربندی پویا (DYNAMIC CONFIGURATION)" معیارهای فرآیند hot را میتوان در زمان اجرا از طریق رابط pmstore(1) (و بهطور ضمنی، از طریق رابط برنامهنویسی pmStore(3)) نیز پیکربندی کرد.
- مثالها
-
pmstore hotproc.control.config 'fname == "mingetty"'
pmstore hotproc.control.config 'uid == 0' - برای بارگذاری مجدد اجباری فایل پیکربندی:
-
pmstore hotproc.control.reload_config "1"
پیکربندی دسترسی (ACCESS CONFIGURATION)
دسترسی به معیارهای تفکیکشده بهازایفرآیند توسط چندین عامل کنترل میشود.
هنگام استفاده از اتصالات محلی با اصالتسنجی خودکار، مانند اتصالات در بافت به سبک “unix:” یا “local:”، ابزارهای کلاینت به این معیارها دسترسی کامل خواهند داشت؛ گویی که نمونهبرداری از معیارها مستقیماً توسط کاربری انجام میشود که ابزار کلاینت را اجرا کرده است.
هنگام استفاده از pmcd با کلاینتهای راهدور اصالتسنجیشده، میتوان مجموعهای از نامهای کاربری را مشخص کرد که مجاز به دسترسی به معیارهای فرآیند هستند.
میتوان از یک فایل پیکربندی به نشانی $PCP_SYSCONF_DIR/proc/access.conf برای تنظیم دقیق این رفتار استفاده کرد؛ این فایل از دو کلیدواژه پشتیبانی میکند:
- allowed
- فهرستی از نامهای کاربری اصالتسنجیشده که با کاما از یکدیگر جدا شدهاند و مجاز به دسترسی به معیارهای بهازایفرآیند خواهند بود. نمونهبرداری با هویت کاربر ریشه (root) انجام میشود.
- mapped
- یک مقدار بولی است؛ در صورت درستی (true)، نشان میدهد نامهای کاربری اصالتسنجیشده به نامهای حسابهای کاربری سیستم محلی نگاشت خواهند شد (این امر مستلزم نگاشت یکبهیک نام کاربری بین حساب کاربری و نام کاربری اصالتسنجیشده مبتنی بر SASL است که توسط pmcd(1) اعمال میشود). نمونهبرداری با هویت آن کاربر محلی انجام میشود.
نصب (INSTALLATION)
عامل proc PMDA بهطور پیشفرض نصب شده و در دسترس است. اگر میخواهید نصب آن را لغو کنید، دستورهای زیر را با هویت ریشه (root) اجرا کنید:
# cd $PCP_PMDAS_DIR/proc # ./Remove
اگر میخواهید پس از حذف، دوباره دسترسی به نامها، متن راهنما و مقادیر معیارهای کارایی proc را برقرار کنید، دستورهای زیر را با هویت ریشه (root) اجرا کنید:
# cd $PCP_PMDAS_DIR/proc # ./Install
برنامهٔ pmdaproc توسط pmcd(1) راهاندازی میشود و هرگز نباید مستقیماً اجرا گردد. اسکریپتهای Install و Remove در هنگام نصب یا حذف عامل، موضوع را به pmcd(1) اطلاعرسانی میکنند.
فایلها (FILES)
- $PCP_PMCDCONF_PATH
- گزینههای خط فرمان مورد استفاده برای راهاندازی pmdaproc
- $PCP_PMDAS_DIR/proc/help
- فایل پیشفرض متن راهنما برای معیارهای proc
- $PCP_PMDAS_DIR/proc/Install
- اسکریپت نصب برای عامل pmdaproc
- $PCP_PMDAS_DIR/proc/Remove
- اسکریپت لغو نصب برای عامل pmdaproc
- $PCP_LOG_DIR/pmcd/proc.log
- فایل گزارش (log) پیشفرض برای پیامهای خطا و سایر اطلاعات از pmdaproc
- $PCP_PMDAS_DIR/proc/samplehotproc.conf
- نمونه سادهٔ پیکربندی hotproc
- $PCP_PMDAS_DIR/proc/hotproc.conf
- فایل پیکربندی پیشفرض hotproc
- $PCP_SYSCONF_DIR/proc/access.conf
- فایل پیشفرض پیکربندی کنترل دسترسی متغیرهای محیطی با پیشوند PCP_ برای پارامتربندی نام فایلها و دایرکتوریهای استفادهشده توسط PCP به کار میروند. در هر نصب، فایل /etc/pcp.conf شامل مقادیر محلی برای این متغیرها است. متغیر $PCP_CONF میتواند برای مشخصکردن یک فایل پیکربندی جایگزین استفاده شود، همانطور که در pcp.conf(5) شرح داده شده است.
گزینههای اشکالزدایی (DEBUGGING OPTIONS)
گزینهٔ -D یا --debug خروجی عیبیابی تکمیلی را در stderr برای کمک به ریشهیابی و اولویتبندی مشکلات فعال میکند؛ هرچند این اطلاعات گاهی مبهم بوده و بیشتر بهمنظور راهنمایی برای توسعهدهندگان در نظر گرفته شده است تا کاربران نهایی. debug فهرستی از گزینههای اشکالزدایی جداشده با کاما است؛ از pmdbg(1) همراه با گزینهٔ -l برای بهدست آوردن فهرستی از گزینههای اشکالزدایی موجود و معانی آنها استفاده کنید.
گزینههای اشکالزدایی مخصوص به pmdaproc به شرح زیر هستند:
| گزینه | توضیحات |
| appl0 | مدیریت cgroup |
| appl1 | پردازش تازهسازی، شامل معیارهای hotproc |
| appl2 | عملیاتهای PMNS |
| appl3 | معیارهای process accounting |
همچنین ببینید (SEE ALSO)
PCPIntro(1)، pmcd(1)، pmstore(1)، seteuid(2)، setegid(2)، PMAPI(3)، pcp.conf(5) و pcp.env(5).
| PCP | Performance Co-Pilot |