| PMIE_CHECK(1) | General Commands Manual | PMIE_CHECK(1) |
نام (NAME)
pmie_check, pmie_daily - مدیریت موتور استنتاج Performance Co-Pilot
خلاصه دستور (SYNOPSIS)
$PCP_BINADM_DIR/pmie_check [-CNPpsTV?] [-c
control] [-l logfile]
$PCP_BINADM_DIR/pmie_daily [-NV?] [-c control]
[-k discard] [-l logfile] [-m
addresses] [-x compress] [-X program]
[-Y regex]
توضیحات (DESCRIPTION)
این مجموعه از اسکریپتهای شل و فایلهای کنترلی مرتبط را میتوان برای ایجاد یک شیوه مدیریتی و اجرایی سفارشی برای موتور استنتاج Performance Co-Pilot (ببینید PCPIntro(1)) ، یعنی pmie(1) بهکار برد.
دستور pmie_check میتواند در هر زمانی از شبانهروز اجرا شود و بررسی میکند که آیا مجموعه مورد نظری از فرایندهای pmie در حال اجرا هستند یا خیر. در غیر این صورت، هر فرایند مفقود موتور استنتاج را اجرا (یا راهاندازی مجدد) میکند.
دستور pmie_daily برای اجرا یک بار در روز، ترجیحاً در اوایل صبح و در اسرع وقت پس از نیمهشب در نظر گرفته شده است. وظیفه آن چرخش (rotate) فایلهای لاگ برای فرایندهای در حال اجرای pmie است - این فایلها در صورتی که عمل ``print'' استفاده شود، یا هر عمل دیگری از pmie در جریانهای stdout/stderr خود بنویسد، ممکن است بهطور نامحدود رشد کنند. پس از گذشت مدتی، فایلهای لاگ قدیمی pmie دور ریخته (حذف) میشوند.
گزینهها (OPTIONS)
گزینههای خط فرمان موجود عبارتند از:
- -c control, --control=control
- هر دو دستور pmie_check و pmie_daily توسط فایل(های) کنترلی موتور استنتاج PCP کنترل میشوند که نمونههای pmie تحت مدیریت را مشخص میکنند. فایل control پیشفرض $PCP_PMIECONTROL_PATH است اما میتوان یک فایل جایگزین را با استفاده از گزینه -c مشخص کرد. اگر دایرکتوری $PCP_PMLOGGERCONTROL_PATH.d (یا control.d از گزینه -c) وجود داشته باشد، محتوای هر فایل control اضافی درون آن به انتهای فایل کنترل اصلی (که باید وجود داشته باشد) اضافه خواهد شد.
- -C
- این گزینه باعث میشود pmie_check اطلاعات سطح اجرای (runlevel) سرویس سیستمی را برای pmie پرسوجو کرده و از آن برای تعیین اینکه آیا فرایندها شروع شوند یا خیر استفاده کند.
- -k period, --discard=period
- دوره نگهداری لاگ ( period) بهطور پیشفرض ۱۴ روز است، اما میتوان با استفاده از این گزینه آن را تغییر داد. دو مقدار ویژه برای period حذف شناخته میشود؛ یعنی 0 برای نگهداری نکردن از هیچ فایل لاگی فراتر از لاگ فعلی، و forever برای جلوگیری از دور ریختن (حذف) هرگونه فایل لاگ.
- -l file, --logfile=file
- به منظور اطمینان از اینکه هنگام اجرای این اسکریپتها از طریق cron(8) ایمیلی بهطور ناخواسته ارسال نشود، اطلاعات تشخیصی همیشه به فایلهای لاگ ارسال میشوند. بهطور پیشفرض، این فایلها $PCP_LOG_DIR/pmie/pmie_daily.log و $PCP_LOG_DIR/pmie/pmie_check.log هستند، اما میتوان این را با استفاده از گزینه -l تغییر داد. اگر این file لاگ هنگام شروع اسکریپت از قبل وجود داشته باشد، پیش از اینکه اطلاعات تشخیصی در فایل لاگ جدید ثبت شوند، با پسوند .prev تغییر نام داده میشود (و هر فایل لاگی را که قبلاً ذخیره شده باشد بازنویسی میکند).
- -m addresses, --mail=addresses
- استفاده از این گزینه باعث میشود pmie_daily خلاصهای از فایلهای لاگ ایجاد شده برای همه میزبانهای تحت نظارت را در ۲۴ ساعت گذشته تولید کند (خطوط منطبق بر `` OK '' حذف میشوند)، و آن خلاصه را به مجموعهای از addresses که با فاصله از هم جدا شدهاند ایمیل کند.
- -N, --showme
- این گزینه یک حالت ``show me'' (نمایشی) را فعال میکند، که در آن اقدامات برنامه بدون اجرا شدن و به سبک ``make -n'' نمایش داده میشوند. استفاده از -N به همراه -V قابلیتهای تشخیصی را برای اشکالزدایی به حداکثر میرساند.
- -s, --stop
- استفاده از این گزینه عملکرد معکوس pmie_check را ارائه میدهد، و امکان متوقف کردن مرتب و تمیز مجموعه فرایندهای pmie را فراهم میکند.
- -p, --skip-primary
- اگر این گزینه برای pmie_check مشخص شده باشد، هر خطی از فایلهای کنترل برای primary pmie نادیده گرفته خواهد شد. این گزینه برای محیطهایی در نظر گرفته شده که در آن یک دیمن سیستمی، مانند systemd(1)، مسئول کنترل (شروع، توقف، راهاندازی مجدد، و غیره) primary pmie است.
- -P, --only-primary
- اگر این گزینه برای pmie_check مشخص شده باشد، تنها مدخل pmie اصلی (primary) در فایلهای کنترل پردازش خواهد شد. این گزینه از نظر منطقی برعکس گزینه -p شرحدادهشده در بالا است و برای استفاده توسط اسکریپتهای RC که فقط pmie اصلی را اجرا میکنند، مانند واحد pmie.service در نظر گرفته شده است. گزینههای -p و -P برای pmie_check مانعةالجمع هستند.
- -T, --terse
- این گزینه برای pmie_check خروجی مختصرتری نسبت به حالت پیشفرض تولید میکند. این گزینه برای یک pmie ``farm'' که در آن انتظار میرود نمونههای زیادی از pmie در حال اجرا باشند، بسیار مناسب است.
- -V, --verbose
- خروجی حاصل از اجرای اسکریپتها توسط cron میتواند با استفاده از گزینه -V گسترش یابد که ردیابی پرجزئیات فعالیت آنها را فعال میکند. بهطور پیشفرض، اسکریپتها هیچ خروجی تولید نمیکنند مگر اینکه با شرایط خطا یا هشدار مواجه شوند. استفاده از -N به همراه -V قابلیتهای تشخیصی را برای اشکالزدایی به حداکثر میرساند.
- -x period, --compress-after=period
- فایلهای لاگ را میتوان اختیاری پس از گذشت یک period (دوره زمانی) فشرده کرد تا فضای دیسک حفظ شود. این امر به ویژه برای تعداد زیادی از فرایندهای pmie تحت کنترل pmie_check مفید است. گزینه -x تعداد روزهایی را مشخص میکند که پس از آن، فایلهای داده بایگانی باید فشرده شوند..TP -X program, --compressor=program این گزینه برنامهی مورد استفاده برای فشردهسازی را مشخص میکند - که بهطور پیشفرض xz(1) است.
- -Y regex, --regex=regex
- این گزینه
امکان
تعیین یک
عبارت
باقاعده را
فراهم
میکند که
باعث
نادیده
گرفتن
فایلهایی
از
مجموعهی
فایلهای
منطبقشده
برای
فشردهسازی
میشود -
این کار
اجازه
میدهد فقط
فایل داده
فشرده شود،
و همچنین از
تلاش مجدد
برنامه
برای
فشردهسازی
آن جلوگیری
میکند.
مقدار
پیشفرض regex
برابر است
با
"\.(meta|index|Z|gz|bz2|zip|xz|lzma|lzo|lz4|zst)$"
- چنین فایلهایی با استفاده از گزینهٔ -v در egrep(1) فیلتر میشوند. - -?, --help
- نمایش پیام راهنمای استفاده و خروج.
پیکربندی (CONFIGURATION)
هشدار: فایلهای $PCP_PMIECONTROL_PATH و $PCP_PMIECONTROL_PATH.d نباید توسط هیچ کاربری به جز root قابل نوشتن باشند.
فایل(های) کنترلی باید بر اساس قوانین زیر که برای نسخه کنونی (1.1) قالب فایل کنترلی تعریف شدهاند، سفارشیسازی شوند.
- 1.
- خطوطی که با «#» آغاز میشوند، توضیحات (کامنت) هستند.
- 2.
- خطوطی که با
«$» آغاز
میشوند،
به عنوان
مقداردهی
به
متغیرهای
محیطی به
سبک sh(1) در
نظر گرفته
میشوند، و
تمام متن پس
از «$» توسط
اسکریپتی
که فایل
کنترلی را
میخواند
eval میشود،
و متغیر
مربوطه به
محیط صادر (export)
میگردد.
این قابلیت
بهویژه
برای تنظیم
و صادر کردن
متغیرها به
محیط
اسکریپت
مدیریتی
مفید است،
به عنوان
مثال:
$ PMCD_CONNECT_TIMEOUT=20
- 3.
- در فایل
کنترلی
اولیه
باید یک خط
نسخه به شکل
زیر وجود
داشته باشد:
$ version=1.1
- 4.
- در
فایل(های)
کنترلی
باید برای
هر نمونه از
pmie یک خط به
فرم زیر
وجود داشته
باشد:
host y|n y|n logfile args
- 5.
- فیلدهای درون یک خط از فایل(های) کنترلی با یک یا چند فاصله یا تب از یکدیگر جدا میشوند.
- 6.
- فیلد اول نام میزبانی است که منبع پیشفرض سنجههای عملکردی برای این نمونهی pmie میباشد.
- 7.
- فیلد دوم نشان میدهد که آیا این یک نمونهی اصلی (primary) از pmie است (y) یا خیر (n). از آنجا که موتور استنتاج اصلی باید روی میزبان محلی اجرا شود، و برای یک میزبان مشخص حداکثر میتواند یک نمونهی اصلی وجود داشته باشد، این فیلد حداکثر برای یک نمونه از pmie میتواند y باشد، که در این حالت نام میزبان باید نام میزبان محلی باشد. هنگام تولید فایلهای پیکربندی pmie، بند primary نشان میدهد که pmieconf(1) باید علاوهبر تمام قوانین پیشفرض دیگر، کلیه قوانین گروه primary را نیز فعال کند.
- 8.
- فیلد سوم مشخص میکند که آیا این نمونهی pmie نیاز دارد تحت کنترل pmsocks(1) راهاندازی شود تا بتواند از میان یک دیوارهآتش به یک pmcd متصل گردد (y یا n).
- 9.
- فیلد چهارم نام فایل گزارش فعالیت (activity log) مربوط به pmie است. یک قرارداد سودمند این است که نمونههای pmie ناظر بر میزبان محلی با نام میزبان myhost در دایرکتوری $PCP_LOG_DIR/pmie/myhost نگهداری شوند، در حالی که گزارشهای فعالیت برای میزبان راه دور mumble در $PCP_LOG_DIR/pmie/mumble نگهداری میگردند. این سازگار با روشی است که pmlogger(1) گزارشهای فعالیت و فایلهای بایگانی خود را مدیریت میکند.
- 10.
- تمام فیلدهای دیگر به عنوان آرگومانهایی تفسیر میشوند که باید به pmie(1) پاس داده شوند. بهطور معمول این آرگومان گزینهٔ -c خواهد بود.
خطوط کنترلی نمونهٔ زیر یک نمونهی pmie را مشخص میکنند که میزبان محلی (wobbly) را پایش میکند، و نمونهای دیگر سنجههای عملکردی را از میزبان splat نظارت مینماید.
wobbly n PCP_LOG_DIR/pmie/wobbly -c config.default splat n PCP_LOG_DIR/pmie/splat -c splat/cpu.conf
مدخلهای معمول crontab(5) برای اجرای دورهای pmie_daily و pmie_check در $PCP_SYSCONF_DIR/pmie/crontab ارائه شدهاند (مگر اینکه پیشتر بهطور پیشفرض در /etc/cron.d نصب شده باشند) و در زیر نشان داده شدهاند.
# daily processing of pmie logs 08 0 * * * $PCP_BINADM_DIR/pmie_daily # every 30 minutes, check pmie instances are running 28,58 * * * * $PCP_BINADM_DIR/pmie_checkهنگام استفاده از systemd(1) در لینوکس، نیازی به مدخلهای crontab نیست چرا که بهجای آن از سازوکار تایمر ارائهشده توسط systemd استفاده میشود..PP ابزار pmiectl(1) ممکن است pmie_check را با استفاده از دستور sudo(1) فراخوانی کند تا آن را تحت حساب کاربری $PCP_USER «pcp» اجرا نماید. اگر sudo با گزینهٔ غیرپیشفرض requiretty پیکربندی شده باشد (پایین را ببینید)، ممکن است pmie_check به دلیل نداشتن یک tty پیکربندیشده در اجرا با شکست مواجه شود. این مشکل میتواند با افزودن یک سطر دوم (مقدار $PCP_BINADM_DIR را بر اساس پلتفرم خود بسط دهید) به فایل پیکربندی /etc/sudoers به صورت زیر برطرف شود:
Defaults requiretty Defaults!$PCP_BINADM_DIR/pmie_check !requiretty
توجه داشته باشید که حساب کاربری غیرممتاز PCP که این دستورها تحت آن اجرا میشوند، از /sbin/nologin به عنوان شل استفاده میکند؛ بنابراین گزینهٔ requiretty در اینجا بیاثر بوده و غیرفعال کردن آن به این شیوه ایمن است.
فایلها (FILES)
- $PCP_PMIECONTROL_PATH
- فایل کنترل
پیشفرض
موتور
استنتاج PCP
هشدار: این فایل نباید توسط هیچ کاربری غیر از root قابل نوشتن باشد. - $PCP_PMIECONTROL_PATH.d
- دایرکتوری
اختیاری
حاوی
فایلهای
کنترل
تکمیلی
موتور
استنتاج PCP،
معمولاً یک
فایل به
ازای هر
میزبان
هشدار: فایلهای موجود در این دایرکتوری نباید توسط هیچ کاربری غیر از root قابل نوشتن باشند. - $PCP_SYSCONF_DIR/pmie/crontab
- نمونه crontab برای اجرای خودکار اسکریپت توسط $PCP_USER (یا root) - تنها در صورتی وجود دارد که پلتفرم از سازوکار /etc/cron.d پشتیبانی نکند.
- $PCP_VAR_DIR/config/pmie/config.default
- مسیر پیشفرض فایل پیکربندی pmie برای یک موتور استنتاج localhost، که معمولاً بهطور خودکار توسط pmieconf(1) تولید میشود.
- $PCP_LOG_DIR/pmie/pmie_check.log
- مسیر پیشفرض برای فایل لاگ pmie_check. هنگام اجرا به عنوان یک سرویس دیمن (daemon)، اگر فرایند pmie نتواند شروع شود یا زودتر از موعد خارج شود، ممکن است پیامهای خطا در این فایل ثبت شوند، بهویژه اگر دیمن نتواند فایل لاگ اختصاصی خود را باز کند.
- $PCP_LOG_DIR/pmie/pmie_daily.log
- مسیر پیشفرض برای پیامهای خطای تولید شده در طول عملیات روزانهٔ نگهداری سرویس pmie.
- $PCP_LOG_DIR/pmie/<hostname>
- مسیر دایرکتوری پیشفرض برای فایل لاگ pmie برای میزبان hostname
- $PCP_LOG_DIR/pmie/<hostname>/lock
- فایل قفل گذرا جهت تضمین انحصار متقابل در طول مدیریت pmie برای میزبان hostname - در صورت وجود، چنانچه هیچیک از pmie_daily یا pmie_check در حال اجرا نباشند، میتوان آن را با اطمینان حذف کرد.
- $PCP_LOG_DIR/NOTICES
- فایل اطلاعیههای PCP («notices») مورد استفاده توسط pmie(1) و ابزارهای وابسته
محیط PCP (PCP ENVIRONMENT)
متغیرهای محیطی با پیشوند PCP_ برای تعیین نام فایلها و دایرکتوریهای مورد استفاده PCP به کار میروند. در هر نصب، فایل /etc/pcp.conf حاوی مقادیر محلی این متغیرها است. متغیر $PCP_CONF میتواند برای مشخص کردن یک فایل پیکربندی جایگزین استفاده شود، همانطور که در pcp.conf(5) شرح داده شده است.
همچنین ببینید (SEE ALSO)
egrep(1)، PCPIntro(1)، pmie(1)، pmieconf(1)، systemd(1)، xz(1) و cron(8).
| PCP | Performance Co-Pilot |