IOSTAT2PCP(1) General Commands Manual IOSTAT2PCP(1)

iostat2pcp - وارد کردن داده‌های iostat و ایجاد یک آرشیو PCP

iostat2pcp [-v] [-S start] [-t interval] [-V version] [-Z timezone] infile outfile

دستور iostat2pcp یک فایل متنی ایجادشده توسط iostat(1) (infile) را خوانده و آن را به یک آرشیو Performance Co-Pilot (PCP) با نام پایه outfile تبدیل می‌کند. اگر infile برابر «-» باشد، iostat2pcp از ورودی استاندارد (standard input) می‌خواند، که امکان پیش‌پردازش آسان خروجی iostat(1) با استفاده از sed(1) یا ابزارهای مشابه را فراهم می‌سازد.

آرشیو PCP حاصل می‌تواند همراه با تمامی ابزارهای کلاینت PCP برای رسم نمودار زیرمجموعه‌هایی از داده‌ها با استفاده از pmchart(1)، انجام تلخیص داده‌ها و گزارش‌گیری، فیلتر کردن با موتور استنتاج PCP به نام pmie(1) و غیره به کار رود.

مجموعه‌ای از فایل‌های فیزیکی با پیشوند outfile ایجاد خواهند شد. این فایل‌ها عبارتند از: outfile.0 (داده‌های کارایی)، outfile.meta (متاداده توصیف‌کننده داده‌های کارایی) و outfile.index (یک نمایه زمانی برای بهبود کارایی عملیات بازپخش در آرشیو). اگر هر یک از این فایل‌ها از قبل موجود باشد، iostat2pcp روی آن‌ها بازنویسی نخواهد کرد و با یک پیام خطا خارج می‌شود.

اولین نمونه خروجی از iostat(1) شامل خلاصه آماری از زمان بالا آمدن سیستم (boot time) است و توسط iostat2pcp نادیده گرفته می‌شود؛ بنابراین اولین مجموعه داده واقعی، دومین نمونه در خروجی iostat(1) است.

بهترین نتایج زمانی حاصل می‌شود که iostat(1) با فلگ اختصاصی -t خود اجرا شده باشد، تا هر نمونه خروجی دارای یک برچسب زمانی (timestamp) در ابتدا باشد. حالت حتی بهتر این است که -t همراه با متغیر محیطی $S_TIME_FORMAT=ISO در هنگام اجرای iostat(1) تنظیم شده باشد، که در این حالت برچسب زمانی شامل منطقه زمانی نیز خواهد بود.

توجه داشته باشید که اگر $S_TIME_FORMAT=ISO همراه با گزینه -t استفاده نشود، ممکن است iostat(1) یک برچسب زمانی تحت کنترل LC_TIME از لوکال سیستم تولید کند که در قالبی باشد که iostat2pcp قادر به تجزیه آن نباشد. قالب‌های برچسب زمانی قابل قبول برای iostat2pcp با مثال‌های زیر نشان داده شده‌اند:

2013-07-06T21:34:39+1000
(برای حالت $S_TIME_FORMAT=ISO).
2013-07-06 21:34:39
(برای برخی از قالب‌های اروپایی، مانند de_AT، de_BE، de_LU و en_DK.utf8).
06/07/13 21:34:39
(برای تمام تنظیمات $LC_TIME در لوکال‌های انگلیسی خارج از آمریکای شمالی، مانند en_AU، en_GB، en_IE، en_NZ، en_SG و en_ZA، و تمام لوکال‌های اسپانیایی، مانند es_ES، es_MX و es_AR).

به‌طور خاص توجه داشته باشید که برخی از تنظیمات متداول $LC_TIME در آمریکای شمالی با iostat2pcp کار نخواهند کرد (به‌ویژه en_US، POSIX و C) زیرا از قالب MM/DD استفاده می‌کنند که ممکن است به‌اشتباه با قالب پیش‌فرض DD/MM تبدیل شود. این دلیل دیگری برای توصیه به تنظیم $S_TIME_FORMAT=ISO است.

اگر هیچ برچسب زمانی در جریان ورودی وجود نداشته باشد، iostat2pcp سعی می‌کند بازه زمانی نمونه‌ها را در صورت یافتن داده‌های پایه‌ای دیسک (گزینه -d در iostat(1)) استنتاج کند. اگر این کار ناموفق باشد، می‌توان از گزینه -t برای تعیین بازه زمانی نمونه‌برداری interval به ثانیه استفاده کرد. این گزینه در صورت وجود برچسب‌های زمانی در جریان ورودی نادیده گرفته می‌شود.

گزینه -S می‌تواند برای تعیین زمان شروع اولین نمونه واقعی در infile استفاده شود، که در آن start باید دارای قالب HH:MM:SS باشد. در صورت وجود برچسب‌های زمانی در جریان ورودی، این گزینه نادیده گرفته می‌شود.

گزینه -V نسخه آرشیو PCP خروجی را مشخص می‌کند. به‌طور پیش‌فرض، نسخه آرشیو $PCP_ARCHIVE_VERSION (که در انتشار‌های فعلی PCP برابر ۳ تنظیم شده) استفاده می‌شود، و تنها مقادیر معتبر در حال حاضر برای version برابر ۲ یا ۳ هستند.

گزینه -Z می‌تواند برای تعیین یک منطقه زمانی استفاده شود. این گزینه باید دارای قالب +HHMM (برای ساعت و دقیقه در شرق UTC) یا -HHMM (برای ساعت و دقیقه در غرب UTC) باشد. به‌ویژه توجه داشته باشید که برای گزینه -Z، نه قالب zoneinfo (معروف به Olson مانند Europe/Paris) و نه قالب Posix مربوط به TZ (مانند EST+5) مجاز نیستند. این گزینه در صورت یافتن برچسب‌های زمانی ISO در جریان ورودی نادیده گرفته می‌شود. اگر منطقه زمانی مشخص نشده باشد و قابل استنتاج هم نباشد، مقدار پیش‌فرض آن ``UTC'' خواهد بود.

برخی خروجی‌های تشخیصی اضافی با گزینه -v تولید می‌شوند.

دستور iostat2pcp یک اسکریپت Perl است که از پوشش‌دهنده پرل PCP::LogImport پیرامون کتابخانه libpcp_import در PCP استفاده می‌کند، و از این رو می‌تواند به‌عنوان نمونه‌ای برای توسعه ابزارهای جدید جهت وارد کردن انواع دیگر داده‌های کارایی و ایجاد آرشیوهای PCP استفاده شود.

گزینه‌های موجود خط فرمان عبارتند از:

تعیین زمان شروع start برای اولین نمونه.
تعیین بازه نمونه‌برداری interval به ثانیه.
چاپ خروجی با جزئیات کامل (verbose).
تعیین منطقه زمانی timezone مورد استفاده، توضیحات بالا را ببینید.

دستور iostat2pcp نیاز دارد که infile توسط نسخه‌ای از iostat(1) موجود در http://freshmeat.net/projects/sysstat ایجاد شده باشد.

ابزار iostat2pcp قالب‌های گزارش -c (CPU)، -d (دیسک)، -x (دیسک گسترش‌یافته) و -p (پارتیشن) (شامل انواع -k، -m، -z و ALL) را پشتیبانی می‌کند، اما از قالب گزارش -n (سامانه فایل شبکه‌ای یا Network Filesystem) دستور iostat(1) پشتیبانی نمی‌کند؛ این یک محدودیت ناشی از تقاضا است و نه یک محدودیت فنی.

متغیرهای محیطی با پیشوند PCP_ برای پارامتریک کردن نام فایل‌ها و دایرکتوری‌های مورد استفاده PCP به کار می‌روند. در هر نصب، فایل /etc/pcp.conf حاوی مقادیر محلی برای این متغیرها است. متغیر $PCP_CONF می‌تواند برای تعیین یک فایل پیکربندی جایگزین استفاده شود، همان‌گونه که در pcp.conf(5) توصیف شده است.

iostat(1), pmchart(1), pmie(1), pmlogger(1), sed(1), Date::Format(3pm), Date::Parse(3pm), PCP::LogImport(3pm) و LOGIMPORT(3).

PCP Performance Co-Pilot