| PCPINTRO(1) | General Commands Manual | PCPINTRO(1) |
نام (NAME)
PCPIntro - مقدمهای بر Performance Co-Pilot (PCP)
مقدمه (INTRODUCTION)
ابزار Performance Co-Pilot (PCP) مجموعهای از ابزارهاست که برای پایش و مدیریت کارایی در سطح سیستم طراحی شده است. این سرویسها بهصورت توزیعشده و مقیاسپذیر هستند تا از پیچیدهترین پیکربندیهای سیستم و مشکلات مربوط به کارایی پشتیبانی کنند.
ابزار PCP از پلتفرمهای گوناگونی از جمله (اما نه محدود به) Linux، macOS، Solaris و Windows پشتیبانی میکند. از یک دیدگاه سطح بالا، PCP شامل دو دسته از ابزارهای کاربردی نرمافزاری است:
- PCP Collectors
- اینها بخشهایی از PCP هستند که دادههای کارایی را از منابع مختلف، برای مثال کرنل سیستمعامل، جمعآوری و استخراج میکنند.
- PCP Monitors
- اینها بخشهایی از PCP هستند که دادههای جمعآوریشده از میزبانها (یا آرشیوها)یی را که PCP Collector روی آنها نصب شده است، نمایش میدهند. بسیاری از ابزارهای پایش به عنوان بخشی از نسخهٔ اصلی PCP در دسترس هستند، در حالی که سایر ابزارهای پایش (معمولاً گرافیکی) بهصورت جداگانه در بستهٔ PCP GUI ارائه میشوند.
این مدخل راهنما، ویژگیهای سطح بالا و گزینههای مشترک بیشتر ابزارهای PCP را که در همهٔ پلتفرمها در دسترس هستند، شرح میدهد.
نمای کلی (OVERVIEW)
معماری PCP از این دیدگاه توزیعشده است که هر ابزار PCP میتواند از راه دور اجرا شود. روی میزبان (یا میزبانهای) تحت پایش، هر دامنه از معیارهای کارایی، خواه کرنل، لایهٔ سرویس، سیستم مدیریت پایگاه داده، وبسرور، یک برنامه و غیره، نیازمند یک «عامل دامنهٔ معیارهای کارایی» (PMDA) است که مسئولیت جمعآوری اندازهگیریهای کارایی از آن دامنه را بر عهده دارد. تمام PMDAها توسط دیمن گردآورندهٔ معیارهای کارایی (pmcd(1)) روی همان میزبان کنترل میشوند.
برنامههای کلاینت (ابزارهای پایش) به pmcd(1) متصل میشوند، که با هدایت درخواستها به PMDA مناسب و بازگرداندن پاسخها به کلاینتها، به عنوان یک مسیریاب برای درخواستها عمل میکند. کلاینتها همچنین میتوانند برای تحلیلهای گذشتهنگر، به دادههای کارایی از مجموعهای از آرشیوهای PCP (ایجادشده با استفاده از pmlogger(1)) دسترسی داشته باشند.
فلسفهٔ امنیتی
ابزار PCP حجم گستردهای از اطلاعات کارایی را در درون یک میزبان و در سراسر شبکههای آن بازتوزیع میکند. فلسفهٔ امنیتی زیر مبنای تنظیم چندین مقدار پیشفرض است که میزان اطلاعات ارسالی و دریافتی را کنترل میکنند.
بهطور پیشفرض، اطلاعاتی که توسط PMCD دربارهٔ یک میزبان ارائه میشود، تقریباً در همان سطح محرمانگی اطلاعات در دسترس برای یک کاربر کاملاً بدون امتیاز روی آن میزبان است. بنابراین، دادههای کارایی که روی یک ماشین کاملاً آزادانه قابل خواندن هستند، ممکن است توسط PMCD روی شبکه در دسترس قرار گیرند.
با این حال، فرض بر این نیست که روی میزبان اجراکنندهٔ PMCD و شبکهٔ آن فقط برنامههای مطمئن اجرا میشوند. بنابراین، عملیاتهای از نوع نوشتن، از جمله از سوی میزبان محلی، بهطور پیشفرض مجاز نیستند.
این پیشفرضها را میتوان به چندین روش لغو کرد (گسترش داد یا محدود کرد)، از جمله با تعیین ACLهای شبکه در pmcd.conf، فعالسازی PMDAهای غیرپیشفرض، یا با استفاده از اتصالات PMCD که اطلاعات هویتی کاربر را انتقال میدهند. برای مثال، برخی PMDAها بهطور خودکار اطلاعات بیشتری را در اختیار کاربران یا گروههای خاص دارای اعتبارنامه قرار میدهند..SS "برنامههای کاربردی (Applications)" برنامههای نظارت بر کارایی زیر عمدتاً مبتنی بر کنسول هستند، معمولاً مستقیماً از خط فرمان اجرا میشوند، و تنها زیرمجموعه کوچکی از ابزارهای موجود در بسته پایه PCP میباشند.
هر ابزار یا دستور بهطور کامل در صفحه راهنمای اختصاصی خود مستند شده است.
- pmstat
- خلاصهای سطح بالا از کارایی سیستم را در قالب ASCII خروجی میدهد.
- pmie
- یک موتور استنتاج که میتواند قواعد گزاره-کنش را برای ایجاد هشدارها و خودکارسازی وظایف مدیریت سیستم ارزیابی کند.
- pminfo
- بررسی و پرسوجوی معیارهای کارایی مشخص و فرادادههایی که آنها را توصیف میکنند.
- pmlogger
- بایگانیهای PCP از معیارهای کارایی مناسب برای بازپخش توسط اکثر ابزارهای PCP را تولید میکند.
- pmrep
- گزارشگر معیارهای کارایی با قابلیت سفارشیسازی بالا و پشتیبانی از حالتهای مختلف خروجی.
- pmval
- گزارشدهی دورهای ساده برای برخی یا تمام نمونههای یک معیار کارایی، همراه با کنترل زمان اختیاری VCR.
اگر بسته گرافیکی PCP (بسته PCP GUI) نصب شده باشد، ابزارهای اضافی زیر در دسترس خواهند بود.
- pmchart
- روندهای زمانی معیارهای کارایی دلخواه انتخابشده از یک یا چند میزبان را نمایش میدهد.
- pmtime
- ابزار کنترل زمان برای هماهنگسازی زمان بین چندین ابزار (از جمله pmchart و pmval).
- pmdumptext
- تولید گزارشهای ASCII برای ترکیبهای دلخواهی از معیارهای کارایی.
آرگومانهای رایج خط فرمان (COMMON COMMAND LINE ARGUMENTS)
مجموعهای از آرگومانهای رایج خط فرمان وجود دارد که بهطور یکنواخت توسط اکثر ابزارهای PCP استفاده میشوند.
archive فهرستی از نامهاست که با کاما از هم جدا شدهاند، و هر یک میتواند نام یک دایرکتوری حاوی یک یا چند بایگانی باشد، یا نام پایه مشترک برای تمام فایلهای فیزیکی ایجادشده توسط یک نمونه از pmlogger(1)، یا هر یک از فایلهای فیزیکی؛ مانند /path/to/myarchives (دایرکتوری) یا myarchive (نام پایه) یا myarchive.meta (فایل فراداده) یا myarchive.index (نمایه زمانی) یا myarchive.0 (نخستین جلد داده از archive) یا myarchive.0.bz2 یا myarchive.0.bz (نخستین جلد داده فشردهشده با bzip2(1)) یا myarchive.0.gz یا myarchive.0.Z یا myarchive.0.z (نخستین جلد داده فشردهشده با gzip(1))، myarchive.1 یا myarchive.3.bz2 یا myarchive.42.gz و غیره.
- -s samples, --samples=samples
- آرگومان samples تعداد نمونههایی را که باید بازیابی و گزارش شوند تعیین میکند. اگر samples برابر 0 باشد یا -s (یا --samples) مشخص نشده باشد، برنامه بهطور پیوسته (در حالت بلادرنگ) یا تا پایان مجموعه بایگانیهای PCP (در حالت بایگانی) نمونهبرداری و گزارشدهی خواهد کرد.
در صورت نبود یک منبع زنده یا آرشیو از معیارها، میتوان یک جستجوی اکتشافی (heuristic) را برای یافتن آرشیوهای میزبان محلی از طریق گزینه -O (یا --origin) فراخوانی کرد. هنگام استفاده از این گزینه بدون تعیین یک منبع صریح برای معیارها، ابزارهای نظارتی تلاش میکنند از آرشیوهای موجود در یک مسیر آرشیو سیستمی مانند $PCP_LOG_DIR/pmlogger/`hostname` استفاده کنند. برای جزئیات ساختار دستوری مجاز برای گزینه مبدأ، به بخش تعیین پنجره زمانی (TIME WINDOW SPECIFICATION) در ادامه مراجعه کنید؛ یک فراخوانی معمول در این حالت بهصورت -O today یا --origin yesterday خواهد بود.
تعیین و تراز بازه زمانی (INTERVAL SPECIFICATION AND ALIGNMENT)
بیشتر ابزارهای PCP با نمونهبرداری یا گزارشدهی دورهای کار میکنند، و گزینههای -t (یا --interval) و -A (یا --align) میتوانند برای کنترل مدتزمان بازه نمونهبرداری و تراز کردن زمانهای نمونهبرداری به کار روند.
آرگومان interval بهصورت دنبالهای از یک یا چند عنصر با قالب زیر مشخص میشود:
number[units]که در آن number یک عدد صحیح یا ممیز شناور ثابت است (که با استفاده از strtod(3) تجزیه میشود) و units اختیاری یکی از موارد زیر است: seconds, second, secs, sec, s, minutes, minute, mins, min, m, hours, hour, h, days, day و d. اگر unit خالی باشد، second فرض میشود.
علاوه بر این، نگارش با حروف بزرگ (یا ترکیبی از حروف بزرگ و کوچک) برای هر یک از موارد بالا نیز پذیرفته میشود.
فاصلهها در هر کجای interval نادیده گرفته میشوند، بنابراین مقادیر 4 days 6 hours 30 minutes, 4day6hour30min, 4d6h30m و 4d6.5h همگی معادل یکدیگر هستند.
مشخصات چندگانه با یکدیگر جمع میشوند، برای مثال ``1hour 15mins 30secs'' بهصورت ۳۰+۹۰۰+۳۶۰۰ ثانیه تفسیر میشود.
آرگومان align از قواعد دستوری آرگومان interval که در بالا برای گزینه -t یا --interval توضیح داده شد پیروی میکند.
توجه داشته باشید که تراز کردن با جلو بردن زمان در صورت نیاز انجام میشود، و -A (یا --align) بهعنوان یک تعدیلکننده برای پیش بردن هم آغاز پنجره زمانی (بخش بعدی را ببینید) و هم زمان مبدأ (در صورتی که گزینه -O یا --origin مشخص شده باشد) عمل میکند. بسیاری از ابزارهای PCP طوری طراحی شدهاند که در یک بازه زمانی مدنظر عمل کنند؛ برای نمونه جهت تعیین زمان پایان برای پایش بیدرنگ (real-time)، یا تعریف زمان شروع و پایان در یک مجموعه از آرشیوهای PCP.
در صورت عدم استفاده از گزینههای -O (یا --origin) و -A (یا --align) جهت تعیین مبدأ زمانی نخستین نمونهگیری و تراز زمانی (به بالا رجوع کنید)، برنامهٔ PCP نخستین نمونه را در آغاز بازه زمانی واکشی خواهد کرد.
برای مشخص کردن بازه زمانی مدنظر میتوان از گزینههای زیر استفاده کرد:
پارامتر starttime میتواند به یکی از سه شکل مشخص شود (interval مشابه گزینهٔ -t یا --interval است که در بالا شرح داده شد، و datetime در زیر توضیح داده شده است):
- interval
- برای تعیین یک آفست نسبت به زمان کنونی (در حالت بیدرنگ) یا آغاز یک مجموعه از آرشیوهای PCP (در حالت آرشیو)، کافی است بازه زمانی را به عنوان آرگومان مشخص کنید. برای نمونه -S 30min زمان آغاز بازه زمانی را در حالت بیدرنگ دقیقاً ۳۰ دقیقه پس از زمان کنونی، یا دقیقاً ۳۰ دقیقه پس از آغاز یک مجموعه از آرشیوهای PCP تعیین میکند.
- -interval
- برای تعیین یک آفست نسبت به پایان یک مجموعه از آرشیوهای PCP، پیش از آرگومان interval یک علامت منفی قرار دهید. در این حالت، زمان آغاز بازه زمانی به اندازهٔ بازهٔ مشخصشده، پیش از زمان پایان مجموعه آرشیوها خواهد بود. برای نمونه -S -1hour زمان آغاز بازه زمانی را دقیقاً یک ساعت پیش از زمان آخرین نمونه در یک مجموعه از آرشیوهای PCP قرار میدهد.
- @datetime
- برای تعیین تاریخ و زمان تقویمی (زمان محلی در منطقه زمانی گزارشدهی) برای آغاز بازه زمانی، از ساختار datetime با پیشوند علامت @ استفاده کنید. برای اطلاعات دقیق به توضیحات datetime در زیر مراجعه کنید.
پارامتر endtime میتواند به یکی از سه شکل مشخص شود (interval مشابه گزینهٔ -t یا --interval است که در بالا شرح داده شد، و datetime در زیر توضیح داده شده است):
- interval
- برای تعیین یک آفست نسبت به آغاز بازه زمانی، کافی است بازهٔ زمانی را به عنوان آرگومان به کار ببرید. برای نمونه -T 2h30m پایان بازه زمانی را ۲ ساعت و ۳۰ دقیقه پس از آغاز بازه زمانی تعیین خواهد کرد.
- -interval
- برای تعیین یک آفست به عقب نسبت به زمان پایان یک مجموعه از آرشیوهای PCP، پیش از آرگومان interval یک علامت منفی قرار دهید. برای نمونه -T -90m پایان بازه زمانی را ۹۰ دقیقه پیش از زمان آخرین نمونه در یک مجموعه از آرشیوهای PCP تعیین میکند.
- @datetime
- برای تعیین تاریخ و زمان تقویمی (زمان محلی در منطقه زمانی گزارشدهی) برای پایان بازه زمانی، از ساختار datetime با پیشوند علامت @ استفاده کنید. برای اطلاعات دقیق به توضیحات datetime در زیر مراجعه کنید.
آرگومان origin که توسط -O (یا --origin) پذیرفته میشود، از همان نحو و معناشناسیِ آرگومان starttime برای گزینهٔ -T (یا --finish) پیروی میکند.
برای نمونه --origin -0 مشخص میکند که موقعیت اولیه باید در پایان بازه زمانی باشد؛ این ویژگی هنگام تمایل به بازپخش «رو به عقب» درون بازه زمانی بیشترین کاربرد را دارد.
آرگومان
datetime برای
گزینههای
-O (یا --origin)، -S
(یا --start) و -T (یا
--finish) شامل
موارد زیر
است:
date time zone day relative
یک date
میتواند
یکی از
موارد زیر
باشد: YY-MM-DD، MM/DD/YY، DD Month
YYYY یا Month DD YYYY. یک time
میتواند
یکی از
موارد زیر
باشد: HH:MM:SS، HH:MM. HH:MM
میتواند
از قالب ۱۲
ساعته (با
پسوند am یا pm)
یا ۲۴ ساعته
استفاده
کند. یک day
هفته
میتواند
نام کامل
روز هفته
باشد که به
صورت
اختیاری یک
عدد ترتیبی
مانند second Tuesday
پیش از آن
میآید. یک zone
مقدار یک
منطقه
زمانی است
که توسط
دستور tzselect(8)
مشخص
میشود. یک
زمان نسبی (relative
time) میتواند
یک واحد
زمانی باشد
که: یک عدد
اصلی مانند 1
year یا 2 months پیش از
آن بیاید،
یکی از
واژههای
زمانی this یا last
پیش از آن
بیاید، یا
واژهٔ
زمانی ago پس
از آن بیاید.
یک زمان
نسبی
همچنین
میتواند
یکی از
کلمات
زمانی زیر
باشد: yesterday، today،
tomorrow، now.
نمونههایی
از
رشتههای datetime
عبارتاند
از: 1996-03-04 13:07:47 EST Mon, 1996-03-05 14:07:47
EST -1hour, Mon Mar 4 13:07:47 1996, Mar 4 1996, Mar
4, Mar, 13:07:50 یا 13:08..PP
برای هر یک
از فیلدهای
مرتبه
پایین
نامشخص،
مقدار
پیشفرض 0
برای ساعت،
دقیقه و
ثانیه،
مقدار 1 برای
روز ماه و Jan
برای ماه در
نظر گرفته
میشود.
بنابراین،
موارد زیر
معادل
یکدیگرند: --start
'@ Mar 1996' و --start '@ Mar 1 00:00:00 1996'.
اگر هر یک از فیلدهای مرتبه بالا مشخص نشده باشند، با آغاز از سال، ماه و روز از زمان کنونی (حالت بیدرنگ یا real-time) یا زمان آغاز مجموعه بایگانیهای PCP (حالت بایگانی یا archive) پر میشوند و زمان تا جایی به جلو برده میشود که با فیلدهای مشخصشده مطابقت پیدا کند. بنابراین، به عنوان مثال اگر پنجره زمانی بهطور پیشفرض در “Mon Mar 4 13:07:47 1996” آغاز شود، آنگاه --start @13:10 مطابق با 13:10:00 در Mon Mar 4, 1996 خواهد بود، در حالی که --start @10:00 مطابق با 10:00:00 در Tue Mar 5, 1996 خواهد بود (توجه داشته باشید که این روز بعد است).
برای دستیابی به دقتی بالاتر از آنچه توسط datetime(3) فراهم میشود، مؤلفه ثانیه میتواند یک عدد ممیز شناور باشد.
اگر منطقه زمانی در یک datetime گنجانده نشده باشد، بسته به سایر گزینههای خط فرمان استفادهشده، چندین تفسیر در دسترس خواهد بود. پیشفرض، استفاده از منطقه زمانی محلی روی سیستمی است که ابزار PCP در آن اجرا میشود. گزینه -Z یا --timezone یک منطقه زمانی صریح را تعیین میکند، در غیر این صورت گزینه -z یا --hostzone منطقه زمانی را به منطقه زمانی محلی میزبانی تغییر میدهد که منبع معیارهای کارایی است.
معیارهای کارایی - شناسهها، نامها، مقادیر (PERFORMANCE METRICS - IDENTIFIERS, NAMES, VALUES)
تعداد نامهای معیارهای کارایی پشتیبانیشده توسط PCP در بیشتر پلتفرمها، از چندصد تا چندین هزار متغیر است. کتابخانهها و برنامههای کاربردی PCP از یک طرح شناسایی داخلی استفاده میکنند که بدون ابهام یک عدد صحیح واحد را به هر معیار کارایی شناختهشده مرتبط میکند. این عدد صحیح به عنوان شناسه معیار کارایی یا PMID شناخته میشود. اگرچه یک الزام قطعی نیست، اما PMIDها در سراسر تمام سیستمها تمایل به یکپارچگی سراسری دارند؛ بنابراین یک معیار کارایی خاص معمولاً دارای PMID یکسانی است.
برای همه کاربران و بیشتر برنامهها، استفاده مستقیم از PMIDها نامناسب خواهد بود (این کار دامنه معیارهای در دسترس را محدود میکند، نگهداری کد را دشوار میسازد، رابط کاربری را بیش از حد پیچیده میکند، و غیره). از این رو، از یک فضای نام معیارهای کارایی (PMNS) برای ارائه نامهای خارجی و یک ردهبندی سلسلهمراتبی برای معیارهای کارایی استفاده میشود. یک PMNS به صورت درختی نمایش داده میشود که در آن هر گره دارای یک برچسب، و یک اشارهگر یا به یک PMID (برای گرههای برگ) یا به مجموعهای از گرههای فرزند در PMNS (برای گرههای غیربرگ) است.
برچسب هر گره باید با یک نویسه الفبایی آغاز شود و به دنبال آن صفر یا چند نویسه برگرفته از حروف الفبا، ارقام و نویسه “_” (زیرخط) بیاید. برای نویسههای الفبایی در برچسب گره، میان حروف کوچک و بزرگ تمایز قائل میشود.
بر اساس قرارداد، نام یک معیار کارایی از الحاق برچسبهای گرهها در مسیری درون PMNS از گره ریشه تا یک گره برگ، با یک “.” به عنوان جداکننده ساخته میشود. گره ریشه در PMNS فاقد برچسب است، بنابراین تمام نامها با برچسب مرتبط با یکی از گرههای نواده زیر گره ریشه PMNS آغاز میشوند، برای مثال kernel.percpu.syscall. بهطور معمول (اگرچه الزامی نیست) در یک PMNS حداکثر یک نام برای هر PMID وجود دارد. برای مثال kernel.all.cpu.idle و disk.dev.read نامهای یکتا برای دو معیار کارایی متمایز هستند که هر یک PMID منحصربهفرد خود را دارند.
گروههایی از PMIDهای مرتبط را میتوان با نامگذاری یک گره غیربرگ در درخت PMNS مشخص کرد، برای مثال disk.
فضای نام PMNS محلی پیشفرض که توسط pmcd استفاده میشود در $PCP_VAR_DIR/pmns/root قرار دارد؛ با این حال متغیر محیطی PMNS_DEFAULT میتواند روی مسیر کامل یک PMNS متفاوت تنظیم شود که در این صورت به عنوان PMNS محلی پیشفرض استفاده خواهد شد.
بیشتر برنامهها مستقیماً از PMNS محلی استفاده نمیکنند، بلکه بر حسب نیاز بخشهایی از PMNS را از همان جایی وارد میکنند که معیارهای کارایی واکشی میشوند؛ یعنی از pmcd(1) برای پایش زنده، یا از مجموعهای از بایگانیهای PCP برای پایش گذشتهنگر.
برای کاوش در PMNS از pminfo(1) استفاده کنید، یا در صورت نصب بودن بسته رابط کاربری گرافیکی PCP، از پنجرههای New Chart و Metric Search درون pmchart(1).
برخی از معیارهای کارایی دارای یک مقدار منفرد هستند. برای مثال، حافظه در دسترس یا تعداد تعویضهای زمینه به ازای هر منبع معیار کارایی یک مقدار دارند؛ یعنی یک مقدار به ازای هر میزبان. توصیفگر معیار (فراداده) برای هر معیار، این واقعیت را به برنامههایی که مقادیر این معیارهای تکمقداری را پردازش میکنند، اعلام میدارد.
برخی از معیارهای کارایی در هر دامنه پیادهسازیکننده معیار کارایی، دارای مجموعهای از مقادیر یا نمونهها (instances) هستند. برای مثال، یک مقدار به ازای هر دیسک، یک مقدار به ازای هر فرایند، یک مقدار به ازای هر CPU، یا یک مقدار به ازای هر بار فعالسازی یک برنامه معین. هنگامی که یک معیار دارای چندین نمونه باشد، PMNS این امر را در نامهای معیار نشان نمیدهد؛ بلکه یک معیار منفرد میتواند مجموعهای از مقادیر مرتبط داشته باشد. مقادیر چندگانه با اعضای یک دامنه نمونه (instance domain)، مرتبط میشوند، به طوری که هر نمونه دارای یک شناسه نمونه یکتا درون دامنه نمونه مرتبط است. برای مثال، دامنه نمونه “per CPU” ممکن است از شناسههای نمونه 0، 1، 2، 3 و غیره برای شناسایی پردازندههای پیکربندیشده در سیستم استفاده کند. درون سیستم، شناسههای نمونه به عنوان مقادیر باینری کدگذاری میشوند، اما هر دامنه معیار کارایی از رشتههای متناظر نیز به عنوان نامهای خارجی شناسههای نمونه پشتیبانی میکند و این نامها در رابط کاربری ابزارهای PCP استفاده میشوند.
چندین معیار کارایی میتوانند با یک دامنه نمونه واحد مرتبط باشند. برای مثال، معیارهای به ازای هر فرایند زیر proc همگی از یک دامنه نمونه مشترک استفاده میکنند.
سامانه PCP ترتیبی میدهد تا اطلاعات توصیفکننده دامنههای نمونه، از دامنههای معیار کارایی به برنامههایی که به این اطلاعات نیاز دارند صادر شود. برنامهها همچنین میتوانند مقادیر را برای تمام نمونههای یک معیار کارایی، یا زیرمجموعه دلخواهی از نمونههای در دسترس دریافت کنند.
نامهای معیارها و مفهوم دامنه نمونه، دو بُعد را برای مدلسازی معیارهای کارایی فراهم میکنند. این مدلی شفاف و ساده است، با این حال در برخی موارد کافی نیست. برای مثال، یک معیار ممکن است نیازمند نمایش دادههایی با ابعاد بالاتر باشد، مانند شمارندههای “به ازای هر CPU” برای هر فرایند در حال اجرا. در این موارد رایج است که یک نمونه مرکب (compound instance) ایجاد شود که در آن نام از هر مؤلفه با یک جداکننده در میان آنها تشکیل شده است (برای مثال، ممکن است از “87245::cpu7” برای جداسازی شناسه فرایند از شناسه CPU استفاده شود) تا نامهای نمونه هموارشده (flattened) ایجاد گردد. علاوه بر این، چنین مواردی از بهکارگیری برچسبهای نمونههای معیار برای نمایش صریح مؤلفههای مجزا بهره میبرند (در ادامه مثال بالا، ممکن است از برچسبهای “{"pid":87245,"cpu":7}” استفاده شود)..SH "مشخصات معیارهای کارایی (PERFORMANCE METRIC SPECIFICATIONS)" در فایلهای پیکربندی و (به میزان کمتر) گزینههای خط فرمان، مشخصات معیارها در بیشتر ابزارها از قواعد نحوی زیر پیروی میکنند. برای مشاهده نحو دقیق مورد پشتیبانی، به صفحه راهنمای ویژه هر ابزار مراجعه کنید.
اگر منبع
معیارهای
کارایی
بهصورت
بیدرنگ (real-time)
از جانب pmcd(1)
باشد، نحو
پذیرفتهشده
به این صورت
است:
host:metric[instance1,instance2,...]
اگر منبع
معیارهای
کارایی
مجموعهای
از
بایگانیهای
PCP باشد، نحو
پذیرفتهشده
به این صورت
است:
archive/metric[instance1,instance2,...]
مؤلفههای host:، archive/ و [instance1,instance2,...] همگی اختیاری هستند.
جداکننده , در فهرست نامهای نمونه (instance) میتواند با نویسه فاصله جایگزین شود.
نویسههای خاص در نامهای instance میتوانند با قرار دادن نام درون علامت نقلقول جفتی یا آوردن یک ممیز وارونه (backslash) پیش از نویسه، گریزدهی (escape) شوند.
فاصله در همهجا نادیده گرفته میشود، مگر درون نام نقلقولشده یک instance .
یک instance خالی بدون اعلان خطا نادیده گرفته میشود، و بهویژه ``[]'' همانند نبود instance است، در حالی که ``[one,,,two]'' تنها بهصورت مشخصکننده دو نمونه ``one'' و ``two'' تجزیه میشود.
بهعنوان یک حالت خاص، اگر host تنها نویسه ``@'' باشد، به یک منبع PM_CONTEXT_LOCAL اشاره دارد؛ رجوع کنید به pmNewContext(3).
اتصالات امن PMCD (SECURE PMCD CONNECTIONS)
از نسخه 3.6.11 نرمافزار PCP به بعد، یک پایشگر میتواند با استفاده از پرچم بافتار PM_CTXFLAG_SECURE، صراحتاً یک اتصال امن به میزبان گردآورنده در حال اجرای pmcd(1) یا pmproxy(1) درخواست کند. اگر میزبان گردآورنده PCP از این قابلیت پشتیبانی کند — برای تأیید این موضوع به معیار pmcd.feature.secure مراجعه کنید — یک اتصال TLS/SSL (امنیت لایه انتقال یا لایه سوکتهای امن) میتواند برقرار شود که از رمزنگاری کلید عمومی و روشهای مرتبط با آن استفاده میکند. هدف این ویژگیها جلوگیری از شنود و دستکاری دادهها توسط شخص ثالث مخرب، و همچنین فراهم کردن احراز هویت سمت سرور (شناسایی مطمئن سرور توسط کلاینت) است که میتواند برای محافظت در برابر حملات مرد میانی (man-in-the-middle) به کار رود.
یک اتصال امن pmcd نیازمند استفاده از احراز هویت مبتنی بر گواهی است. ویژگیهای امنیتی ارائهشده توسط pmcd و pmproxy با استفاده از رابطهای برنامهنویسی و ابزارهای کاربردی OpenSSL پیادهسازی شدهاند. ابزار openssl(1) میتواند برای ایجاد گواهیهای مناسب جهت برقراری اعتماد میان میزبانهای پایشگر و گردآورنده PCP استفاده شود.
ارائه توضیحات کامل خارج از حیطه این سند است؛ برای اطلاعات تفصیلی به بخشهای محیط PCP (PCP ENVIRONMENT)، فایلها (FILES) و همچنین ببینید (SEE ALSO) مراجعه کنید. این بخشها شامل پیوندهایی به راهنماهای آموزشی درباره مراحل راهاندازی ویژگیهای امنیتی موجود هستند..SH "تعیین میزبان PMCD (PMCD HOST SPECIFICATION)" در نبود مشخصسازی صریح نام میزبان، بیشتر ابزارها در حالت بهروزرسانی زنده بهطور پیشفرض از میزبان محلی استفاده میکنند. در نسخههای PCP از 3.8.4 به بعد، این امر منجر به انتخاب یک پروتکل محلی کارآمد میشود - که معمولاً یک سوکت دامنه یونیکس (Unix domain socket) است. اگر از این گزینه استفاده شود (که همچنین میتواند به طور صریح از طریق مشخصسازی میزبان به صورت unix: که در زیر شرح داده شده، درخواست شود)، توجه به این نکته حائز اهمیت است که تمام اتصالات به طور خودکار احراز هویت میشوند. به عبارت دیگر، اعتبارنامههای کاربری که ابزار کلاینت را اجرا میکند، به طور خودکار و از طرف کاربر در دسترس pmcd(1) و تمام PMDAهای آن قرار میگیرد، به گونهای که نتایج را میتوان بر اساس سطوح دسترسی هر کاربر سفارشیسازی کرد.
البته نامهای میزبانهای دوردستِ اجراکننده دیمن pmcd(1) نیز میتوانند برای درخواست استفاده از یک میزبان دوردست ارائه شوند. پایهایترین شکل تعیین میزبان pmcd یک نام ساده میزبان است که در صورت نیاز ممکن است شامل نام دامنه نیز باشد. با این حال، میتوان این مورد را به روشهای متعددی بسط داد تا ویژگیهای اتصال برقرار شده با pmcd دقیقتر مشخص شوند.
از نسخه 3.0 در PCP، شماره پورت pmcd و همچنین نام میزبان اختیاری pmproxy(1) و شماره پورت آن میتوانند به عنوان بخشی از مشخصات میزبان تعیین شوند. این موارد جایگزین متغیرهای محیطی سبک قدیمی PMCD_PORT ،PMPROXY_HOST و PMPROXY_PORT شده و بر آنها اولویت دارند.
موارد زیر، مشخصات معتبر نام میزبان هستند که اتصالات به pmcd روی میزبان nas1.acme.com را با یا بدون فهرستی از پورتها، با یا بدون اتصال pmproxy(1) از میان فایروال، و با آدرسهای IPv6 و IPv4 به شکل نشان داده شده مشخص میکنند.
$ pcp --host nas1.acme.com:44321,4321@firewall.acme.com:44322 $ pcp --host nas1.acme.com:44321@firewall.acme.com:44322 $ pcp --host nas1.acme.com:44321@firewall.acme.com $ pcp --host nas1.acme.com@firewall.acme.com $ pcp --host nas1.acme.com:44321 $ pcp --host [fe80::2ad2:44ff:fe88:e4f1%p2p1] $ pcp --host 192.168.0.103
علاوه بر این، «ویژگیهای اتصال» نیز میتوانند تعیین شوند. این موارد شامل نام کاربری، گذرواژه (میتواند به صورت تعاملی وارد شود و ممکن است به سازوکار احراز هویتِ بهکاررفته بستگی داشته باشد)، تعیین هدفگیری یک کانتینر در حال اجرای خاص، استفاده از پروتکل امن (رمزگذاریشده) یا بومی (عادی)، و غیره است. مثالهای قبلی همگی به طور پیشفرض از پروتکل بومی استفاده میکنند و هیچ احراز هویتی ندارند. این موارد را میتوان تغییر داد، همانطور که در مثالهای زیر آمده است.
$ pcp --host pcps://app2.acme.com?container=cae8e6edc0d5 $ pcp --host pcps://nas1.acme.com:44321?username=tanya&method=gssapi $ pcp --host pcps://nas2.acme.com@firewalls.r.us?method=plain $ pcp --host pcp://nas3.acme.com $ pcp --host 192.168.0.103?container=cae8e6edc0d5,method=scram-sha-256 $ pcp --host unix: $ pcp --host local:
انتخاب روش احراز هویت، و سایر پارامترهای حاصل از آن مانند نام کاربری، گذرواژه اختیاری و غیره، به پیکربندی SASL2 مورد استفاده توسط هر pmcd (دوردست) بستگی دارد. راهنماهای آموزشی برای جنبههای مختلف پیکربندی ماژول(های) احراز هویت استفادهشده در دسترس هستند؛ این جزئیات دقیق خارج از دامنه این سند قرار دارند.
در تمام شرایط، نامهای میزبان را میتوان به جای آدرسدهی IPv4 یا IPv6 (به طور مستقیم) استفاده کرد، همانطور که در بالا نشان داده شد. در صورت استفاده از آدرس IPv6، آدرس کامل باید درون براکتهای مربع قرار گیرد و حوزه (interface) نیز باید مشخص شود.
آخرین مثال در بالا، یعنی local: اکنون برای بیشتر ابزارها پیشفرض است. این اتصال یک اتصال خودکار احراز هویتشده به میزبان محلی در تمام سکوهایی است که از سوکتهای دامنه یونیکس پشتیبانی میکنند. هیچ گذرواژهای لازم نیست و احراز هویت خودکار است. این همچنین کارآمدترین کانال ارتباطی (با کمترین بار پردازشی اضافی) است.
تفاوت بین unix: و local: در این است که اولی تعیین سختگیرانه سوکت دامنه یونیکس است (اگر نتواند از آن طریق متصل شود، اتصال شکست میخورد)، در حالی که دومی در صورت عدم موفقیت، با انعطافپذیری بیشتری به استفاده از localhost بازمیگردد (یعنی زمانی که اتصالات سوکت دامنه یونیکس در دسترس نباشند، از یک اتصال معمولی سوکت Inet استفاده میشود)..SH "فایلها (FILES)"
- /etc/pcp.conf
- فایل پیکربندی برای محیط زمان اجرای PCP، ببینید: pcp.conf(5).
- /etc/pcp/tls.conf
- بهطور اختیاری شامل اطلاعات پیکربندی OpenSSL است، از جمله مکان گواهیهایی که احراز هویت قابلاعتماد را برای میزبانهای collector و monitor فراهم میکنند.
- $HOME/.pcp
- دایرکتوریهای مختص کاربر شامل فایلهای پیکربندی برای سفارشیسازی ابزارهای مختلف پایش، مانند pmchart(1).
- $PCP_RC_DIR/pmcd
- اسکریپت برای شروع و متوقف کردن pmcd(1).
- $PCP_PMCDCONF_PATH
- فایل کنترل برای pmcd(1).
- $PCP_PMCDOPTIONS_PATH
- گزینههای خط فرمان ارسالشده به pmcd(1) هنگامی که از طریق $PCP_RC_DIR/pmcd اجرا میشود. تمام خطوط گزینههای خط فرمان باید با یک خط تیره به عنوان اولین نویسه شروع شوند. این فایل همچنین میتواند شامل تنظیمات متغیرهای محیطی به شکل "VARIABLE=value" باشد.
- $PCP_BINADM_DIR
- محل ابزارهای کمکی PCP برای جمعآوری و نگهداری آرشیوهای PCP، متنهای راهنمای PMDA، فایلهای PMNS و غیره.
- $PCP_PMDAS_DIR
- دایرکتوری والد دایرکتوری نصب برای PMDAهای شیء اشتراکی پویا (DSO).
- $PCP_RUN_DIR/pmcd.pid
- اگر pmcd در حال اجرا باشد، این فایل حاوی یک نمایش دهدهی اسکی از شناسهٔ فرآیند (PID) آن است.
- $PCP_LOG_DIR/pmcd
- مکان پیشفرض فایلهای لاگ برای pmcd(1)، دایرکتوری جاری برای PMDAهای در حال اجرا. آرشیوهای ایجادشده توسط pmlogger(1) عموماً در مسیر $PCP_LOG_DIR/pmlogger قرار دارند.
- $PCP_LOG_DIR/pmcd/pmcd.log
- لاگ تشخیصی و وضعیتی برای فرآیند در حال اجرای فعلی pmcd(1). اولین مکانی که هنگام بروز مشکلات مرتبط با pmcd باید بررسی شود.
- $PCP_LOG_DIR/pmcd/pmcd.log.prev
- لاگ تشخیصی و وضعیتی برای نمونهٔ قبلی pmcd(1).
- $PCP_LOG_DIR/NOTICES
- لاگ مربوط به pmcd(1) و شروعها، توقفها، افزودنها و حذفهای PMDA.
- $PCP_VAR_DIR/config
- شامل دایرکتوریهایی از فایلهای پیکربندی برای چندین ابزار PCP.
- $PCP_SERVICES_DIR/local
- اسکریپت محلی برای کنترل عملیات بوت، خاموشسازی و راهاندازی مجدد PCP. این فایل قبلاً در $PCP_SYSCONF_DIR/pmcd/rc.local قرار داشت و برای حفظ سازگاری، یک پیوند نمادین با آن نام نصب شده است.
- $PCP_VAR_DIR/pmns
- دایرکتوری شامل مجموعه فایلهای PMNS برای تمامی PMDAهای نصبشده.
- $PCP_VAR_DIR/pmns/root
- فایل اسکی PMNS(5) که بهطور پیشفرض توسط pmcd(1) برونریزی میشود. این PMNS ابرمجموعهای از تمام فایلهای PMNS دیگر نصبشده در $PCP_VAR_DIR/pmns است.
علاوه بر این، اگر محصول PCP نصب شده باشد، فایلها و دایرکتوریهای زیر نیز مرتبط خواهند بود.
- $PCP_LOG_DIR/NOTICES
- علاوه بر فعالیتهای pmcd(1) و PMDA، ممکن است برای ثبت هشدارها و اعلانها از pmie(1) از طریق pmpost(1) استفاده شود.
- $PCP_PMLOGGERCONTROL_PATH
- فایل کنترل برای نمونههای pmlogger(1) راهاندازیشده از طریق $PCP_RC_DIR/pmlogger و/یا مدیریتشده توسط pmlogger_check(1) و pmlogger_daily(1) بهعنوان بخشی از راهاندازی گردآوری آرشیو عملیاتی PCP..SH "محیط (ENVIRONMENT)" علاوه بر متغیرهای پیکربندی و محیط زمان اجرای PCP که در بخش PCP ENVIRONMENT در ادامه شرح داده شدهاند، متغیرهای محیطی زیر برای تمام نصبها اعمال میشوند.
توجه داشته باشید که بیشتر کاربردهای این متغیرهای محیطی بهگونهای بهینهسازی شدهاند که محیط را فقط در نخستین باری که ممکن است از متغیر استفاده شود، بررسی کنند. از آنجا که محیط معمولاً دوباره بررسی نمیشود، تنها راهبرد ایمن این است که اطمینان حاصل شود تمام متغیرهای محیطی مرتبط با PCP پیش از نخستین فراخوانی به هر یک از کتابخانههای PCP تنظیم شده باشند.
- PCP_ALLOW_BAD_CERT_DOMAIN
- در صورت تنظیم، به کلاینتها اجازه میدهد گواهیهایی با نامهای دامنه ناهماهنگ را بدون هیچ اعلانی، هنگامی که از سوی pmcd یا سایر مؤلفههای کارساز ارسال میشوند، بپذیرند. بخش PCP_SECURE_SOCKETS. را ببینید.
- PCP_ALLOW_SERVER_SELF_CERT
- در صورت تنظیم، به کلاینتها اجازه میدهد گواهیهای خودامضاشده را بدون هیچ اعلانی، هنگامی که از سوی pmcd یا سایر مؤلفههای کارساز ارسال میشوند، بپذیرند. بخش PCP_SECURE_SOCKETS. را ببینید.
- PCP_CONSOLE
- در صورت تنظیم، کنسول پیشفرض را از /dev/tty (در یونیکس) یا CON: (در ویندوز) به کنسول مشخصشده تغییر میدهد. مقدار ویژه none میتواند برای نشان دادن در دسترس نبودن هیچ کنسولی استفاده شود. این متغیر در مواردی به کار میرود که ابزارهای مبتنی بر کنسول نیازمند تعامل با کاربر هستند، و بهویژه زمانی که احراز هویت در حال انجام است استفاده میشود.
- PCP_DEBUG
- در صورت تنظیم، این متغیر جایگزینی برای گزینه خط فرمان -D که در بالا شرح داده شد فراهم میکند تا گزینههای عیبیابی و اشکالزدایی را برای برنامههایی که از pmGetOptions(3) برای پردازش گزینهها و آرگومانهای خط فرمان استفاده میکنند، مقداردهی اولیه کند. مقدار $PCP_DEBUG همانند گزینه خط فرمان -D است، یعنی فهرستی جداشده با کاما از نام(های) گزینههای اشکالزدایی و/یا اعداد صحیح در مبنای ۱۰؛ برای شرحی از نامها و مقادیر گزینههای پشتیبانیشده، pmdbg(1) را ببینید.
- PCP_DERIVED_CONFIG
- در صورت تنظیم، این متغیر فهرستی جداشده با دونقطه (colon) از فایلها و/یا دایرکتوریها را تعیین میکند (نحو نگارش آن همانند متغیر $PATH برای sh(1)). است). مؤلفهها بهشرح زیر به فهرستی از فایلها بسط داده میشوند: اگر مؤلفهای از $PCP_DERIVED_CONFIG یک فایل باشد، آن فایل به فهرست افزوده میشود، وگرنه اگر مؤلفهای یک دایرکتوری باشد، از پیمایش بازگشتی برای شمارش تمام فایلهای زیر آن دایرکتوری استفاده شده و این موارد به فهرست افزوده میشوند.
فرض میشود هر فایل در فهرست حاصل، شامل تعاریف معیارهای مشتقشده طبق نحو توصیفشده در pmLoadDerivedConfig(3), است و این موارد به ترتیب بارگذاری میشوند.
معیارهای مشتقشده ممکن است برای گسترش معیارهای موجود با معیارهای جدید (مشتقشده) با استفاده از عبارتهای حسابی ساده به کار روند.
اگر PCP_DERIVED_CONFIG تنظیم شده باشد، تعاریف معیارهای مشتقشده به طور خودکار به محض برقراری هر منبع جدیدی از معیارهای کارایی (یعنی هر بار که pmNewContext(3) فراخوانی شود) یا هنگام ایجاد درخواستها علیه PMNS پردازش میشوند.
هر مؤلفهای در فهرست $PCP_DERIVED_CONFIG یا فهرست بسطیافته فایلها که فایل نبوده، دایرکتوری نبوده، یا به دلیل مجوزها یا یک پیوند نمادین نامعتبر قابل دسترسی نباشد، بدون هشدار نادیده گرفته خواهد شد.
- PCP_DERIVED_CONTROL
- تنظیماتی برای گزینههای کنترلی که ممکن است هنگام پردازش معیارهای مشتقشده استفاده شوند. برای جزئیات به pmSetDerivedControl(3) مراجعه کنید.
- PCP_IGNORE_MARK_RECORDS
- هنگام ایجاد لاگهای بایگانی PCP، ممکن است وقفههای زمانی ناشی از گسستگی در سریهای زمانی دادههای ثبتشده رخ دهد؛ برای نمونه زمانی که pmcd(1) مجدداً راهاندازی میشود یا هنگامی که چند بایگانی با pmlogextract(1). به یکدیگر متصل میشوند. این ناپیوستگیها در داخل با یک رکورد <mark> در بایگانیهای PCP نشانهگذاری میشوند، و درونیابی مقدار طبق آنچه در pmSetMode(3) توضیح داده شده است در میان رکوردهای <mark> پشتیبانی نمیشود (زیرا مقادیر پیش و پس از یک رکورد <mark> لزوماً متعلق به یک سری زمانی پیوسته نیستند). گاهی کاربر میداند که معنای دادهها در محدوده رکوردهای <mark> معتبر است، و $PCP_IGNORE_MARK_RECORDS میتواند برای لغو رفتار پیشفرض استفاده شود.
اگر PCP_IGNORE_MARK_RECORDS تنظیم شده باشد (اما مقداری نداشته باشد)، تمامی رکوردهای <mark> نادیده گرفته خواهند شد. در غیر این صورت، مقدار $PCP_IGNORE_MARK_RECORDS از نحو آرگومان interval که در بالا برای گزینه -t شرح داده شد پیروی میکند، و در صورتی که فاصله زمانی میان آخرین رکورد پیش از <mark> و نخستین رکورد پس از <mark> بیشتر از interval. نباشد، رکوردهای <mark> نادیده گرفته میشوند.
- PCP_SECURE_SOCKETS
- در صورت تنظیم، این متغیر تمام اتصالات ابزارهای پایش را مجبور میکند تا با استفاده از قابلیت سوکتهای امن مبتنی بر گواهی برقرار شوند. اگر اتصالات نتوانند بهصورت امن برقرار شوند، با خطا مواجه خواهند شد.
- PCP_TLSCONF_PATH
- مکانی را مشخص میکند که تنظیمات پیکربندی TLS (امنیت لایه انتقال) از آن خوانده خواهد شد. این تنظیمات توسط ابزارهای کلاینت PCP، pmcd و pmproxy در هر زمانی که ارتباط امن (رمزنگاریشده) درخواست شود، استفاده میشوند.
- PCP_STDERR
- بسیاری از ابزارهای PCP از متغیر محیطی PCP_STDERR, پشتیبانی میکنند که میتواند برای کنترل محل ارسال پیامهای خطا استفاده شود. در صورت عدم تنظیم، رفتار پیشفرض این است که پیامهای «نحوه استفاده» و خطاهای تجزیه گزینهها در خطای استاندارد گزارش شوند، و سایر پیامها پس از راهاندازی اولیه به مقصد پیشفرض ابزار ارسال گردند؛ یعنی خطای استاندارد برای ابزارهای ASCII یا یک پنجره گفتگو برای ابزارهای GUI.
اگر PCP_STDERR روی مقدار دقیق DISPLAY تنظیم شود، تمام پیامها در یک پنجره گفتگو نمایش داده خواهند شد. این متغیر برای تمام ابزارهایی که از محیط میزکار اجرا شوند به کار میرود.
اگر PCP_STDERR روی هر مقدار دیگری تنظیم شود، مقدار مذکور به عنوان نام فایل فرض شده و تمام پیامها در آن نوشته خواهند شد.
- PMCD_CONNECT_TIMEOUT
- هنگام تلاش برای برقراری اتصال به یک pmcd(1) راه دور روی ماشینی که در حال راهاندازی (بوت) است، تلاش برای اتصال میتواند بهطور بالقوه برای مدتی طولانی مسدود شود تا زمانی که ماشین راه دور مقداردهی اولیه خود را به پایان برساند. بیشتر برنامههای PCP و برخی از روالهای کتابخانه PCP اگر اتصال پس از سپری شدن بازه زمانی مشخصی برقرار نشده باشد، متوقف شده و خطایی بازمیگردانند. بازه زمانی پیشفرض ۵ ثانیه است. این مقدار میتواند با تنظیم PMCD_CONNECT_TIMEOUT در محیط روی یک عدد حقیقی برحسب ثانیه برای مهلت زمانی مورد نظر تغییر یابد. این متغیر در مواردی بیشترین کاربرد را دارد که میزبان دوردست در انتهای یک شبکه کند قرار داشته باشد و برقراری صحیح اتصال به زمانهای تأخیر طولانیتری نیاز داشته باشد..TP PMCD_RECONNECT_TIMEOUT هنگامی که یک برنامه پایشگر یا کلاینت ارتباط خود را با یک pmcd(1) از دست میدهد، اتصال ممکن است با فراخوانی یک روتین خدماتی در کتابخانه PCP بازبرقرار شود. با این حال، تلاشها برای اتصال مجدد توسط یک راهبرد عقبنشینی (back-off) کنترل میشوند تا از ارسال سیلآسای درخواستهای اتصال مجدد به شبکه جلوگیری شود. به طور پیشفرض، تاخیرهای عقبنشینی برای درخواستهای متوالی اتصال مجدد از سوی یک کلاینت، ۵، ۱۰، ۲۰، ۴۰ و ۸۰ ثانیه هستند (آخرین تاخیر برای هر تلاش دیگر پس از بار پنجم تکرار خواهد شد). تنظیم متغیر محیطی PMCD_RECONNECT_TIMEOUT روی فهرستی از اعداد صحیح مثبت که با کاما از هم جدا شدهاند، این تاخیرهای عقبنشینی را بازتعریف میکند؛ برای نمونه، تنظیم PMCD_RECONNECT_TIMEOUT روی «1,2» ابتدا ۱ ثانیه عقبنشینی کرده و پس از آن هر ۲ ثانیه یکبار برای اتصال مجدد تلاش خواهد کرد.
- PMCD_REQUEST_TIMEOUT
- برای برنامههای پایشگر یا کلاینت متصل به pmcd(1)، این احتمال وجود دارد که برنامه در هنگام درخواست برای معیارهای کارایی، فراداده یا متن راهنما اصطلاحاً «قفل» (hang) کند. اگر سیستمی که pmcd را اجرا میکند دچار فروپاشی (crash) شود یا اتصال شبکه قطع گردد، این تاخیرها ممکن است شدید شوند. با تنظیم متغیر محیطی PMCD_REQUEST_TIMEOUT روی یک تعداد ثانیه مشخص، درخواستها به pmcd پس از این تعداد ثانیه منقضی (timeout) خواهند شد. رفتار پیشفرض برای تمام برنامهها این است که برای دریافت پاسخ از هر pmcd تا ۱۰ ثانیه منتظر بمانند.
- PMCD_WAIT_TIMEOUT
-
هنگامی که pmcd(1) از مسیر $PCP_RC_DIR/pmcd آغاز به کار میکند، بررسیِ آماده بودن pmcd حداکثر تا PMCD_WAIT_TIMEOUT ثانیه منتظر خواهد ماند. اگر pmcd زمان راهاندازی طولانی داشته باشد (مانند یک سیستم بسیار بزرگ)، میتوان PMCD_WAIT_TIMEOUT را طوری تنظیم کرد که حداکثر زمان انتظاری بیشتر از مقدار پیشفرض ۶۰ ثانیه فراهم کند.
- PMNS_DEFAULT
- اگر تنظیم شود، به عنوان مسیر کامل فایلی در نظر گرفته میشود که قرار است به عنوان PMNS محلی پیشفرض برای pmLoadNameSpace(3) استفاده گردد. در غیر این صورت، در سامانههای پایه PCP، این PMNS محلی پیشفرض در $PCP_VAR_DIR/pcp/pmns/root قرار دارد.
- PCP_COUNTER_WRAP
- بسیاری از
معیارهای
کارایی
صادرشده از
عاملهای PCP
دارای
مفهوم
معنایی counter
(شمارنده)
هستند، به
این معنی که
انتظار
میرود به
صورت
یکنواخت
صعودی
باشند. تحت
شرایطی
خاص، ممکن
است مقدار
یکی از این
معیارها
کوچکتر از
مقدار
دریافتشده
قبلی باشد.
این اتفاق
زمانی ممکن
است رخ دهد
که یک
شمارنده با
دقت محدود
سرریز (overflow)
کند، یا
زمانی که
عامل PCP
بازنشانی
یا
بازراهاندازی
شده باشد،
یا هنگامی
که عامل PCP در
حال
استخراج
مقادیر از
سازوکار
سنجش
پایهای
است که دچار
ناپیوستگی
ناهمگام
شده است.
متغیر محیطی PCP_COUNTER_WRAP میتواند تنظیم شود تا مشخص کند همه این موارد کاهش «counter» باید به عنوان سرریز شمارنده تلقی شوند و بنابراین فرض شود که مقادیر در فاصله زمانی بین نمونهگیریهای متوالی یک بار دور زدهاند (wrap). این رفتار «wrapping» در نسخههای قبلی PCP پیشفرض بود، اما از نسخه 1.3 به بعد PCP به طور پیشفرض غیرفعال شده است.
- PCP_PMDAS_DIR
- متغیر محیطی PCP_PMDAS_DIR میتواند برای تغییر دایرکتوری مورد استفاده توسط pmcd(1) و pmNewContext(3) (برای زمینههای PM_CONTEXT_LOCAL) هنگام جستجو برای یک دیمن یا DSO PMDA استفاده شود.
- PMCD_PORT
- پورت (یا پورتهای) TCP/IP مورد استفاده توسط pmcd(1) برای ایجاد سوکت جهت اتصالات و درخواستهای ورودی، در گذشته 4321 و اخیراً پورت ثبتشده رسمی 44321 بوده است؛ در انتشار کنونی، هر دو شماره پورت به طور پیشفرض به عنوان یک راهکار دوره گذار استفاده میشوند. این حالت را میتوان با تنظیم PMCD_PORT روی یک شماره پورت دیگر، یا فهرستی از شماره پورتها با جداکننده کاما، بازنویسی کرد. اگر هنگام آغاز به کار pmcd از پورتی غیرپیشفرض استفاده شود، تمام برنامههای پایشگری که به آن pmcd متصل میشوند نیز باید پیش از تلاش برای اتصال، PMCD_PORT را در محیط خود تنظیم کرده باشند.
متغیرهای محیطی زیر مربوط به سامانههایی هستند که در آنها از pmlogger(1)، بایگان PCP، استفاده میشود.
- PMLOGGER_PORT
- متغیر محیطی PMLOGGER_PORT میتواند برای تغییر شماره پورت پایه TCP/IP مورد استفاده توسط pmlogger(1) جهت ایجاد سوکتی که نمونههای pmlc(1) تلاش میکنند به آن متصل شوند، استفاده شود. شماره پورت پایه پیشفرض 4330 است. در صورت استفاده، PMLOGGER_PORT باید پیش از اجرای pmlogger در محیط تنظیم شود.
- PMLOGGER_REQUEST_TIMEOUT
- هنگامی که pmlc(1) به pmlogger(1) متصل میشود، احتمال اندکی وجود دارد که pmlc به دلیل خرابی در شبکه یا pmlogger، هنگام درخواست اطلاعات اصطلاحاً «قفل» کند. با تنظیم متغیر محیطی PMLOGGER_REQUEST_TIMEOUT روی تعداد مشخصی ثانیه، درخواستها به pmlogger پس از این مدت زمان منقضی خواهند شد. رفتار پیشفرض این است که برای دریافت پاسخ از هر درخواست به یک pmlogger برای همیشه منتظر بماند. در صورت استفاده، PMLOGGER_REQUEST_TIMEOUT باید پیش از اجرای pmlc در محیط تنظیم شود.
اگر محصول PCP را نصب کردهاید، متغیرهای محیطی زیر مربوط به عاملهای دامنه معیارهای کارایی (PMDAها) هستند.
- PMDA_LOCAL_PROC
- استفاده از این متغیر منسوخ شده و اکنون نادیده گرفته میشود. اگر PMDA با عنوان «proc» به عنوان یک DSO برای استفاده با pmcd(1) روی میزبان محلی پیکربندی شده باشد، تمام معیارهای «proc» برای برنامههایی که از زمینه PM_CONTEXT_LOCAL استفاده میکنند در دسترس خواهند بود.
رفتار قبلی به این صورت بود که اگر این متغیر تنظیم میشد، زمینهای که با type از نوع PM_CONTEXT_LOCAL برقرار میشد، برای بازیابی معیارهای کارایی درباره هر فرایند به PMDA با نام «proc» دسترسی داشت. PMDA_LOCAL_SAMPLE استفاده از این متغیر منسوخ شده و اکنون نادیده گرفته میشود. اگر PMDA مربوط به «sample» به عنوان یک DSO برای استفاده با pmcd(1) روی میزبان محلی پیکربندی شده باشد، آنگاه تمامی معیارهای «sample» برای برنامههایی که از بافت PM_CONTEXT_LOCAL استفاده میکنند، در دسترس خواهد بود.
رفتار قبلی به این صورت بود که اگر این متغیر تنظیم میشد، بافتی که با type مربوط به PM_CONTEXT_LOCAL ایجاد میشد، در صورت نصب محلی این PMDA اختیاری، به PMDA مربوط به «sample» دسترسی پیدا میکرد.
- PCP_PMCDCONF_PATH
- مسیر فایل پیکربندی pmcd(1) را بازنویسی میکند. هنگامی که روی $PCP_SYSCONF_DIR/local.conf تنظیم شود، یک بافت PM_CONTEXT_LOCAL تنها PMDAهای DSO فهرستشده در آن فایل را بدون نیاز به در حال اجرا بودن pmcd(1) بارگذاری میکند. این شیوه، روش پیشنهادی برای محدود کردن بافت محلی به مجموعهای کمینه و شناختهشده از PMDAهای DSO است. برای داشتن یک فضاینام متناظر، آن را با PMNS_DEFAULT (در زیر) جفت کنید.
- PMNS_DEFAULT
- فضاینام معیارهای کارایی (Performance Metrics Name Space) پیشفرضی را که در صورت عدم تعیین صریح فضاینام به کار میرود، بازنویسی میکند. هنگامی که روی $PCP_VAR_DIR/pmns/local.root تنظیم شود، یک بافت PM_CONTEXT_LOCAL به جای کل فضاینام سیستم، از فضاینام ادغامشده برای PMDAهای DSO فهرستشده در $PCP_SYSCONF_DIR/local.conf استفاده خواهد کرد. همچنین ببینید: pmns(5) و PMNS_DEFAULT در pcpintro(1).
- PMIECONF_PATH
- در صورت تنظیم، pmieconf(1) مشخصات pmieconf(5) خود (مجموعهای از قوانین پارامتربندیشدهی pmie(1)) را با استفاده از تمام فایلهای معتبر pmieconf موجود در هر زیردایرکتوری از این فهرستِ زیردایرکتوریهای جداشده با دونقطه تشکیل میدهد. در صورت عدم تنظیم، مقدار پیشفرض $PCP_VAR_DIR/config/pmieconf است.
محیط PCP (PCP ENVIRONMENT)
متغیرهای محیطی با پیشوند PCP_ برای پارامتربندی نامهای فایل و دایرکتوری مورد استفاده توسط PCP به کار میروند. در هر نصب، فایل /etc/pcp.conf حاوی مقادیر محلی برای این متغیرها است. متغیر $PCP_CONF میتواند برای تعیین یک فایل پیکربندی جایگزین استفاده شود، همانطور که در pcp.conf(5) شرح داده شده است.
برای متغیرهای محیطی تأثیرگذار بر ابزارهای PCP، به pmGetOptions(3) مراجعه کنید.
همچنین ببینید (SEE ALSO)
pcp(1), pmcd(1), pmie(1), pmie_daily(1), pminfo(1), pmlc(1), pmlogger(1), pmlogger_daily(1), pmrep(1), pmstat(1), pmval(1), systemctl(1), LOGIMPORT(3), LOGARCHIVE(5), pcp.conf(5), pcp.env(5), PMNS(5) و chkconfig(8).
اگر بسته
گرافیکی (GUI)
مربوط به PCP
نصب شده
باشد،
مدخلهای
زیر نیز
مرتبط
هستند:
pmchart(1), pmtime(1) و pmdumptext(1).
اگر
افزونههای
سوکتهای
امن فعال
شده باشند،
مراجع زیر
نیز مرتبط
هستند:
https://pcp.io/documentation.html
https://pcp.readthedocs.io/en/latest/QG/EncryptedConnections.html
https://pcp.readthedocs.io/en/latest/QG/AuthenticatedConnections.html
همچنین به کتابهای Performance Co-Pilot User's and Administrator's Guide و Performance Co-Pilot Programmer's Guide مراجعه کنید که در آدرس زیر در دسترس هستند: https://pcp.readthedocs.io/en/latest.
| PCP | Performance Co-Pilot |