PMLOGCHECK(1) General Commands Manual PMLOGCHECK(1) نام (NAME) pmlogcheck - بررسی داده‌های نامعتبر در آرشیو PCP خلاصه دستور (SYNOPSIS) pmlogcheck [-flmRrvwz?] [-D debug] [-n pmnsfile] [-S start] [-T finish] [-Z timezone] archive ... توضیحات (DESCRIPTION) دستور pmlogcheck اطلاعاتی را درباره ماهیت هرگونه داده نامعتبر که در فایل‌های آرشیو PCP شناسایی کند، چاپ می‌نماید. برای برخی موارد محدود، این ابزار امکان «تعمیر» را نیز فراهم می‌آورد. هر آرشیو دارای نام پایه archive است و باید پیش‌تر با استفاده از pmlogger(1) ایجاد شده باشد. همچنین، archive می‌تواند نام یک فایل فیزیکی باشد که بخشی از یک آرشیو PCP را تشکیل می‌دهد. هنگامی که چندین آرگومان archive ارائه شوند، تمامی آرشیوهای PCP متناظر بررسی خواهند شد؛ با این حال اگر شناسه‌های archive نام فایل باشند، هر آرشیو PCP مرتبط حداکثر یک بار بررسی می‌شود. گزینه‌ها (OPTIONS) گزینه‌های موجود خط فرمان عبارتند از: -f, --full در عملکرد عادی، بیشتر خطاهای رخ‌داده در گام ۰ (پایین را ببینید) به اندازه کافی جدی هستند که pmlogcheck با بروز آن‌ها خارج شود. گزینه -f دستور pmlogcheck را وادار می‌کند که حتی در صورت یافتن خطاهای جدی، به کار خود ادامه دهد. -l, --label چاپ برچسب آرشیو، که نسخه قالب آرشیو، زمان و تاریخ شروع و پایان (فعلی) آرشیو، و میزبانی را که مقادیر معیارهای کارایی از آن جمع‌آوری شده‌اند، نمایش می‌دهد. -m, --metadataonly صرف‌نظر کردن از گام ۳ (پایین را ببینید) و تنها بررسی متادیتای آرشیو. این کار می‌تواند در مواردی که نیازی به بررسی داده‌های حجم نیست، به‌ویژه در آرشیوهایی با حجم‌های داده فشرده، بسیار سریع‌تر اجرا شود. -n pmnsfile, --namespace=pmnsfile بارگذاری یک فضای نام معیارهای کارایی (PMNS(5)) جایگزین از فایل pmnsfile. -R, --auto-repair تلاش برای تعمیر هرگونه آسیب ساختاری، به‌ویژه هنگامی که فایل‌ها ناقص هستند (معمولاً در اثر کرش سیستم یا کمبود فضای فایل‌سیستم)؛ در این صورت آن‌ها کوتاه (truncate) می‌شوند تا بیشترین میزان اطلاعات کامل ممکن حفظ شود. کوتاه‌سازی تنها روی فایل‌های غیرفشرده کار می‌کند، بنابراین هر archive با اجزای فشرده‌شده ابتدا باید با pmlogdecompress(1) از حالت فشرده خارج شود. هر گزینه تعمیری مستلزم -f است. برخی از مشکلات شناسایی‌شده توسط pmlogcheck بهترین راهکارشان کوتاه‌سازی فایل نیست (به‌عنوان مثال، استفاده از pmlogrewrite(1) ممکن است گزینه بهتری باشد)، بنابراین توصیه می‌شود که pmlogcheck ابتدا بدون -R اجرا شود تا دامنه مشکلات مشخص گردد، یا تعمیر به‌صورت تعاملی با -r انجام پذیرد. -r, --repair عملکرد تعمیری مشابه با -R، اما گزینه -r مستلزم اجرای تعاملی pmlogcheck است و پیش از کوتاه‌سازی هر فایل، از کاربر اعلان دریافت کرده و پاسخ مثبت می‌خواهد. -S starttime, --start=starttime تعیین starttime (زمان شروع) پنجره زمانی که معیارها باید در گام ۳ (پایین را ببینید) بررسی شوند. برای شرح کامل نحو starttime، به PCPIntro(1) مراجعه کنید. -T endtime, --finish=endtime تعیین endtime (زمان پایان) پنجره زمانی که معیارها باید در گام ۳ (پایین را ببینید) بررسی شوند. برای شرح کامل نحو endtime، به PCPIntro(1) مراجعه کنید. -v, --verbose فعال‌سازی حالت پرگویی (نمایش با جزئیات). -w, --nowrap جلوگیری از گزارش گردش یا سرریز شمارنده‌ها (counter wraps). -z, --hostzone استفاده از منطقه زمانی محلی میزبانی که منبع آرشیو معیارهای کارایی است. حالت پیش‌فرض استفاده از منطقه زمانی میزبان محلی است. -Z timezone, --timezone=timezone استفاده از timezone برای تاریخ و زمان. مقدار timezone در قالب متغیر محیطی TZ است که در environ(7) شرح داده شده است. حالت پیش‌فرض استفاده از منطقه زمانی میزبان محلی است. -?, --help نمایش پیام راهنما و خروج. نحوه عملکرد (OPERATION) بررسی در چندین گام متوالی انجام می‌شود که هر یک برای اعتبارسنجی روابط معنایی پیچیده‌تر بین اطلاعات موجود در یک آرشیو PCP طراحی شده‌اند. گام ۰ (Pass 0) هر فایل فیزیکی از آرشیو PCP پردازش می‌شود تا اطمینان حاصل شود که رکوردهای برچسب معتبر و سازگار هستند، و هر فایل شامل تعداد صحیحی از رکوردهای فیزیکی با فیلدهای سرایند (header) و پسایند (trailer) درست است. هرگونه خطا در این مرحله معمولاً مهلک است. آرشیو PCP احتمالاً فراتر از امکان تعمیر آسیب دیده است، و هیچ گام دیگری از pmlogcheck اجرا نخواهد شد. گام ۱ (Pass 1) یکپارچگی نمایه زمانی را اعتبارسنجی می‌کند، که معمولاً فایل archive.index است. از آنجا که نمایه زمانی (از نظر فنی) اختیاری است، خطاهای این مرحله با علامت‌گذاری نمایه به‌عنوان معیوب و نادیده گرفتن آن در ادامه گام‌های pmlogcheck مدیریت می‌شوند. تعمیر دائمی می‌تواند با حذف فایل نمایه زمانی و سپس تهیه یک رونوشت از آرشیو PCP با استفاده از pmlogrewrite(1) یا pmlogextract(1) حاصل شود. این کار به‌عنوان یک اثر جانبی، نمایه زمانی جدیدی برای آرشیو رونوشت ایجاد می‌کند. گام ۲ (Pass 2) یکپارچگی فایل متادیتا را اعتبارسنجی می‌کند، که معمولاً فایل archive.meta است. گام ۳ (Pass 3) یکپارچگی هر یک از حجم‌های آرشیو PCP را اعتبارسنجی می‌کند، که معمولاً فایل‌های archive.0، archive.1و غیره هستند. بررسی‌های یکپارچگی اولیه‌ای وجود دارد تا اطمینان حاصل شود که کدگذاری مقادیر برای هر معیار ثابت باقی می‌ماند و مقادیر در تمام مشاهدات موجود در آرشیو خوش‌فرم و معتبر هستند. همچنین انتظار می‌رود که برچسب‌های زمانی برای مشاهدات با پیمایش آرشیو، به‌صورت یکنواخت صعودی باشند. توجه ویژه‌ای به معیارهای شمارنده معطوف می‌شود (type از pmLookupDesc(3) برابر با PM_SEM_COUNTER) است که انتظار می‌رود مقادیر یکنواخت صعودی داشته باشند. اگر مقادیر یکنواخت صعودی نباشند، این امر ممکن است نشان‌دهنده وقوع سرریز یا گردش شمارنده (counter wrap) باشد، یا این‌که وقفه یا بازنشانی در منبع اصلی داده‌های کارایی رخ داده که در آرشیو ثبت نشده است. برای هر معیار شمارنده‌ای که تشخیص داده شده در نقطه‌ای از آرشیو دچار سرریز یا گردش شده است، pmlogcheck خروجی تولید می‌کند که نام معیار (همراه با شناسه‌های نمونه در صورت لزوم)، نوع ذخیره‌سازی داخلی برای معیار، مقدار معیار پیش از گردش شمارنده (همراه با برچسب زمانی متناظر آن)، و مقدار معیار پس از گردش (همچنین همراه با برچسب زمانی) را شرح می‌دهد. گزینه -w می‌تواند برای جلوگیری از گزارش سرریز یا گردش شمارنده‌ها استفاده شود. دستور pmlogcheck بسته به بازه زمانی که روی آن اجرا می‌شود، دو قالب برچسب زمانی مختلف تولید می‌کند. برای بازه بزرگ‌تر از ۲۴ ساعت، علاوه بر زمان وقوع گردش شمارنده، تاریخ نیز نمایش داده می‌شود. اگر محدوده داده‌های تحت بررسی کمتر از ۲۴ ساعت باشد، قالب دقیق‌تری استفاده می‌شود (زمان با دقت میلی‌ثانیه اما بدون تاریخ نمایش داده می‌شود). مثال‌ها (EXAMPLES) دستورات زیر همگی معادل هستند: $ pmlogcheck myarchive $ pmlogcheck myarchive.0 $ pmlogcheck myarchive.meta $ pmlogcheck myarchive.0 myarchive.meta اگر دایرکتوری جاری شامل چندین آرشیو PCP باشد، آن‌گاه دستور $ pmlogcheck *.meta* تمامی آن‌ها را بررسی خواهد کرد، زیرا برای هر آرشیو PCP یک فایل .meta وجود دارد، اما این فایل ممکن است فشرده شده باشد (از این رو علامت * در انتها قرار دارد). فایل‌ها (FILES) $PCP_VAR_DIR/pmns/* فایل‌های پیش‌فرض مشخصات PMNS $PCP_LOG_DIR/pmlogger/ دایرکتوری پیش‌فرض برای آرشیوهای PCP حاوی داده‌های کارایی جمع‌آوری‌شده از میزبان hostname. محیط PCP (PCP ENVIRONMENT) متغیرهای محیطی با پیشوند PCP_ برای پارامتریک کردن نام فایل‌ها و دایرکتوری‌های مورد استفاده PCP به کار می‌روند. در هر نصب، فایل /etc/pcp.conf حاوی مقادیر محلی برای این متغیرها است. متغیر $PCP_CONF می‌تواند برای تعیین یک فایل پیکربندی جایگزین استفاده شود، همان‌طور که در pcp.conf(5) شرح داده شده است. گزینه‌های اشکال‌زدایی (DEBUGGING OPTIONS) گزینه -D یا --debug خروجی اطلاعات عیب‌یابی تکمیلی را روی stderr فعال می‌کند تا به تفکیک و دسته‌بندی مشکلات کمک کند، اگرچه اطلاعات گاهی مبهم است و در اصل برای راهنمایی توسعه‌دهندگان به‌جای کاربران نهایی در نظر گرفته شده است. debug فهرستی از گزینه‌های اشکال‌زدایی است که با کاما از هم جدا شده‌اند؛ از pmdbg(1) با گزینه -l استفاده کنید تا فهرستی از گزینه‌های اشکال‌زدایی موجود و معانی آن‌ها را به دست آورید. گزینه‌های اشکال‌زدایی مخصوص pmlogcheck عبارتند از: ┌──────┬───────────────────────────────────────────────────────────────┐ │گزینه │ توضیحات │ ├──────┼───────────────────────────────────────────────────────────────┤ │appl0 │ تخلیه (dump) هر pmResult پردازش‌شده │ ├──────┼───────────────────────────────────────────────────────────────┤ │appl1 │ گزارش در هر بار مشاهده یک جفت معیار-نمونه جدید │ ├──────┼───────────────────────────────────────────────────────────────┤ │appl2 │ گزارش مقادیر شمارنده به‌عنوان بخشی از فرآیند تشخیص گردش/سرریز │ ├──────┼───────────────────────────────────────────────────────────────┤ │appl3 │ گزارش زمان سپری‌شده و زمان پردازنده (CPU) برای هر گام │ └──────┴───────────────────────────────────────────────────────────────┘ همچنین ببینید (SEE ALSO) PCPIntro(1), pmlogdecompress(1), pmlogdump(1), pmlogextract(1), pmlogger(1), pmlogrewrite(1), pmlogsummary(1), PMAPI(3), pmLookupDesc(3), PMNS(5), pcp.conf(5) و pcp.env(5). Performance Co-Pilot PCP PMLOGCHECK(1)