PCPCOMPAT(1) General Commands Manual PCPCOMPAT(1)

PCPCompat, pcp-collectl, pmmgr, pmwebd - سازگاری با نسخه‌های پیشین در ابزار Performance Co-Pilot (PCP)

مجموعه Performance Co-Pilot (PCP) یک جعبه‌ابزار طراحی‌شده برای پایش و مدیریت کارایی در سطح سیستم است. این خدمات توزیع‌شده و مقیاس‌پذیر هستند تا پیچیده‌ترین پیکربندی‌های سیستم و مسائل مربوط به کارایی را پوشش دهند.

به منظور دستیابی مؤثر به این اهداف، سازگاری پروتکل و سازگاری روی دیسک میان نسخه‌های مختلف PCP فراهم شده است. به‌کارگیری ابزارهای کنونی PCP برای بازپرسی از هرگونه سرویس دوردست، نسخه قدیمی‌تر یا نسخه جدیدتر pmcd(1) و همچنین بازپخش هرگونه آرشیو تاریخی PCP کاملاً امکان‌پذیر (و در واقع توصیه شده) است (مجموعه آزمون‌های PCP شامل آرشیوهایی است که بیش از ۲۰ سال پیش ایجاد شده‌اند!).

توسعه‌دهندگان PCP گهگاه برخی ابزارهای PCP را منسوخ و حذف کرده و آن‌ها را با نگارش‌های جدیدی از ابزارها که قابلیت‌های قابل مقایسه‌ای ارائه می‌دهند جایگزین می‌کنند. این صفحه ابزارهای جایگزین را برای ابزارهای قدیمی PCP شرح می‌دهد.

ابزار PCP رابط‌های python(1) را برای API سنجه‌های کارایی (PMAPI(3))، API عامل‌های دامنه سنجه‌های کارایی (PMDA(3))، API مقادیر نگاشت‌شده در حافظه (mmv_stats_register(3)) و API ایجاد آرشیو PCP (LOGIMPORT(3)) ارائه می‌دهد.

با رسیدن python نسخه ۲ به پایان عمر خود در سال ۲۰۲۰، اکنون تمام پشتیبانی از این نسخه را (از نگارش ۷ به بعد PCP) حذف کرده‌ایم. تمامی APIها و ابزارهای مبتنی بر python در PCP از python نسخه ۳ پشتیبانی می‌کنند و چندین سال است که چنین وضعیتی دارند - ارتقا به نسخه جدیدتر اکیداً توصیه می‌شود.

ابزار PCP رابط‌های گرافیکی اختیاری ساخته‌شده بر پایه کتابخانه چندسکویی Qt را فراهم می‌کند، به‌ویژه pmchart(1) و pmtime(1).

با رسیدن Qt نسخه ۴ به پایان عمر خود در سال ۲۰۱۵، پشتیبانی از تمامی نسخه‌های پیش از Qt v5 را حذف کرده‌ایم. علاوه بر این، برخی از قابلیت‌ها در نسخه‌های اولیه Qt v5 وجود ندارند که اکنون هنگام ساخت و استفاده از ابزارهای PCP Qt الزامی هستند. در نتیجه، حداقل نسخه مورد نیاز Qt برای PCP نسخه ۶ و پس از آن، اکنون Qt 5.6 است.

نسخه‌های PCP پیش از نسخه ۶ از ترکیبی از Mozilla NSS (سرویس‌های امنیت شبکه) و OpenSSL برای بخش رمزنگاری سوکت‌های امن استفاده می‌کردند. از نسخه ۶ به بعد PCP، این ساختار ساده‌سازی شده و به استفاده انحصاری از OpenSSL برای تمامی نیازهای رمزنگاری در سراسر PCP تبدیل شده است. این تغییر بر پیکربندی عملکردهای اختیاری در pmcd(1) و ابزارهای کلاینت PMAPI(3) که از سوکت‌های امن استفاده می‌کنند تأثیر می‌گذارد.

اثر کلی این تغییر این است که رمزنگاری به شیوه‌ای یکسان و با استفاده از همان گواهی‌ها، هم در قابلیت HTTPS در pmproxy(1) و هم در قابلیت پروتکل رمزگذاری‌شده PCP میان pmcd، pmproxy و ابزارهای کلاینت PMAPI پیکربندی می‌شود. علاوه بر این، سرویس سرور کلید-مقدار (key-value) مورد استفاده توسط pmseries(1) و pmproxy نیز منحصراً از OpenSSL و به شیوه‌ای مشابه PCP استفاده می‌کند که مدیریت این سرویس‌ها را به میزان چشمگیری ساده‌تر می‌سازد.

ابزارهای sar2pcp(1) و iostat2pcp(1) منسوخ شده‌اند و در یکی از نسخه‌های آینده PCP (نسخه ۷) بازنشسته خواهند شد. این ابزارها با پشتیبانی بومی برای تولید آرشیوهای PCP در ابزارهای بسته sysstat جایگزین می‌شوند (که خود ابزار sar و همچنین ابزار sadf را ارائه می‌دهد که آرشیوهای PCP را از طریق گزینه -l تولید می‌کند).

نسخه‌های پیشین PCP (پیش از نسخه ۵.۱.۱) یک اسکریپت شل ارائه می‌کردند که به صورت داخلی توسط pmlogconf(1) استفاده می‌شد، واقع در دایرکتوری PCP_BINADM_DIR و با نام pmlogconf-setup. این اسکریپت بازنشسته شده است. قابلیت معادل در صورت نیازِ غیرمحتمل، همچنان از طریق گزینه -s یا --setup در pmlogconf(1) در دسترس است.

قالب پرونده پیکربندی نسخه ۱ pmlogconf-setup (برگرفته از IRIX) نیز در این انتشار بازنشسته شد، پس از گذشت بیش از ۱۰ سال از انتقال خودکار به قالب نسخه ۲ توسط pmlogconf.

مدیر دیمن مستقل PCP به نام pmmgr از نسخه ۵.۲.۰ به بعد PCP بازنشسته شده است. این برنامه به نفع سرویس ساده‌تر pmfind(1) برای راه‌اندازی «مزارع» pmie(1) و pmlogger(1) از سیستم‌های جمع‌آوری‌کننده کشف‌شده PCP با pmfind_check(1) به تدریج کنار گذاشته شد. سازوکارهای جدید، به خصوص هنگام ادغام با systemd، به دیمن اضافی نیاز ندارند و بهتر با مدیریت سرویس‌های pmie و pmlogger که در جاهای دیگر PCP استفاده می‌شود یکپارچه شده‌اند.

ابزار pcp-collectl از نسخه ۵ به بعد PCP با pmrep(1) جایگزین شده است.

معادل گزارش‌گیری زیرسیستم‌های pcp-collectl به صورت زیر حاصل می‌شود:

نمای زیرسیستم پردازنده.
نمای زیرسیستم حافظه.
نمای تجمیعی دیسک‌ها.
نمای تفکیک‌شده دستگاه‌های دیسک.
نمای نگاشت‌کننده دستگاه (Device mapper).
نمای زیرسیستم شبکه.

برنامه‌های تحت وب مستقلی که در نسخه‌های قدیمی‌تر PCP بسته‌بندی شده بودند با grafana-server(1) همراه با پلاگین grafana-pcp در نشانی https://github.com/performancecopilot/grafana-pcp جایگزین شده‌اند.

این پلاگین پیاده‌سازی برنامه Vector و همچنین منابع داده برای اسکریپت‌های pmdabpftrace(1) (اسکریپت‌های bpftrace(8)) و pmseries(1) (تحلیل سریع، مقیاس‌پذیر و توزیع‌شده سری‌های زمانی) را ارائه می‌دهد.

دیمن pmwebd از نسخه ۵ به بعد PCP با pmproxy(1) جایگزین شده است.

به‌طور پیش‌فرض، pmproxy اکنون هنگام ساخته شدن پشتیبانی سری‌های زمانی، هم روی پورت اصلی خود (44322) و هم پورت API وب PCP (44323) گوش فرا می‌دهد.

ابزار pmproxy پیاده‌سازی سازگاری از رابط‌های زنده PMWEBAPI(3) که به صورت سنتی توسط برنامه تحت وب Vector استفاده می‌شد را ارائه می‌دهد (بخش «PCP-WEBAPPS» را ببینید). این ابزار همچنین افزونه‌هایی را برای REST APIهای اصلی pmwebd (مانند سنجه‌های اشتقاقی، جستجوهای فضای نام و نمایه‌های دامنه نمونه)، پشتیبانی از پروتکل HTTPS، و کوئری‌گیری سریع و مقیاس‌پذیر سری‌های زمانی با استفاده از REST API ابزار pmseries(1) همراه با سرور کلید-مقدار توزیع‌شده مانند https://valkey.io ارائه می‌دهد.

شبیه‌سازی جزئی Graphite API که توسط pmwebd ارائه می‌شد بازپیاده‌سازی نشده است - برنامه‌هایی که مایل به استفاده از خدمات مشابه هستند می‌توانند از REST APIهای مقیاس‌پذیر سری‌های زمانی شرح داده شده در PMWEBAPI(3) استفاده کنند.

pcp(1), pmcd(1), iostat2pcp(1), sar2pcp(1), pmrep(1), pmfind(1), pmfind_check(1), pmlogconf(1), pmproxy(1), pmseries(1), pmdabpftrace(1), python(1), grafana-server(1), mmv_stats_register(3), LOGIMPORT(3), PMAPI(3), PMDA(3) and PMWEBAPI(3).

PCP Performance Co-Pilot