PMDADM(1) General Commands Manual PMDADM(1)

pmdadm - عامل دامنه معیارهای کارایی (PMDA) برای Device Mapper

$PCP_PMDAS_DIR/dm/pmdadm [-D debug]

دستور pmdadm یک «عامل دامنه معیارهای کارایی» (PMDA) است که مقادیر معیارها را برای Device Mapper در سیستم محلی ارائه می‌دهد.

این PMDA داده‌های خود را از طریق ابزار dmsetup(8) و رابط برنامه‌نویسی (API) dmstats جمع‌آوری می‌کند و برای کارکرد صحیح نیازمند نصب بودن این برنامه است. علاوه بر این، برای دریافت مقادیر شمارنده‌های اولیه، باید حداقل یک ناحیه آماری با استفاده از ابزار dmstats(8) ایجاد شده باشد. برای مثال‌ها به بخش‌های زیر مراجعه کنید.

توجه داشته باشید که جمع‌آوری آمار device-mapper به‌طور پیش‌فرض فعال نیست و پس از راه‌اندازی مجدد سیستم پایدار نمی‌ماند (مگر اینکه مدیر سیستم دستوری را برای اجرا در rc.local یا معادل آن پیکربندی کرده باشد). دلیل این امر بار اضافی (overhead) ناشی از جمع‌آوری آمار است. علاوه بر این، عامل pmdadm جمع‌آوری هیچ آماری را به‌طور خودکار فعال نمی‌کند، زیرا ممکن است تنها مصرف‌کننده این داده‌ها نباشد.

عامل DM PMDA را با استفاده از اسکریپت Install با دسترسی ریشه (root) نصب کنید:

# cd $PCP_PMDAS_DIR/dm
# ./Install

برای حذف نصب، دستورهای زیر باید با دسترسی ریشه انجام شوند:

# cd $PCP_PMDAS_DIR/dm
# ./Remove

ابزار pmdadm توسط pmcd(1) راه‌اندازی می‌شود و هرگز نباید مستقیماً اجرا شود. اسکریپت‌های Install و Remove هنگام نصب یا حذف عامل، به pmcd اطلاع‌رسانی می‌کنند.

این PMDA از dmstats API (کتابخانه پشتیبانی device-mapper در فضای کاربری) برای ثبت داده‌های کارایی device-mapper استفاده می‌کند.
برای استفاده از این PMDA، کاربران به کتابخانه پشتیبانی device-mapper در فضای کاربری (libdevmapper) و ابزار خط فرمان فضای کاربری dmstats(8) نیاز دارند. پیش از در دسترس قرار گرفتن معیارهای device-mapper برای PCP، باید نواحی آماری (statistics regions) ایجاد شوند. برای نمونه، جهت فعال‌سازی آمار پایه‌ای برای تمام دستگاه‌های منطقی محلی device-mapper، از دستور زیر استفاده کنید:

# dmstats create --alldevices

برای ایجاد نواحی آماری با مرزهای هیستوگرام مشخص، از دستور زیر استفاده کنید:

# dmstats create --alldevices --bounds histogram_boundaries

مرزهای هیستوگرام تاخیر را که باید برای ناحیه ردیابی شود، به صورت فهرستی از مقادیر تاخیر که با کاما از هم جدا شده‌اند مشخص کنید. مقادیر تاخیر به نانوثانیه داده می‌شوند. پسوند واحد اختیاری ns، us، ms یا s می‌تواند پس از هر مقدار مشخص شود تا به ترتیب واحدهای نانوثانیه، میکروثانیه، میلی‌ثانیه یا ثانیه را تعیین کند. برای نمونه:

# dmstats create --alldevices --bounds 10us,30us,50us,70us,90us

جزئیات بیشتر و مثال‌های پیچیده‌تر را می‌توان در dmstats(8) یافت.

شمارنده‌های اولیه (Basic Counters)
شمارنده‌های اولیه امکان دسترسی به داده‌های خام شمارنده از هسته را فراهم می‌کنند و اجازه می‌دهند پردازش‌های بعدی توسط برنامه دیگری انجام شود.
هسته برای هر ناحیه آماری، سیزده شمارنده جداگانه ارائه می‌دهد. یازده مورد اول از این شمارنده‌ها با شمارنده‌های ارائه‌شده در /proc/diskstats یا /sys/block/*/*/stat مطابقت دارند. جفت پایانی شمارنده‌های جداگانه‌ای برای زمان خواندن و نوشتن ارائه می‌دهند.
تعداد خواندن‌های تکمیل‌شده در این بازه به ازای هر دستگاه device-mapper.
تعداد خواندن‌های ادغام‌شده در این بازه به ازای هر دستگاه device-mapper.
تعداد کیلوبایت‌های خوانده‌شده در این بازه به ازای هر دستگاه device-mapper.
مدت زمان انباشته تمام درخواست‌های خواندن به ازای هر دستگاه device-mapper.
تعداد نوشتن‌های تکمیل‌شده در این بازه به ازای هر دستگاه device-mapper.
تعداد نوشتن‌های ادغام‌شده در این بازه به ازای هر دستگاه device-mapper.
تعداد کیلوبایت‌های نوشته‌شده در این بازه به ازای هر دستگاه device-mapper.
مدت زمان انباشته تمام درخواست‌های نوشتن به ازای هر دستگاه device-mapper.
تعداد درخواست‌های در حال انجام به ازای هر دستگاه device-mapper.
نانوثانیه‌های صرف‌شده برای سرویس‌دهی به درخواست‌ها به ازای هر دستگاه device-mapper.
این فیلد در هر شروع I/O، تکمیل I/O، ادغام I/O، یا خواندن این آمارها، به اندازه تعداد I/Oهای در حال انجام ضرب در تعداد نانوثانیه‌های صرف‌شده برای انجام I/O از زمان آخرین به‌روزرسانی این فیلد افزایش می‌یابد. این می‌تواند معیاری ساده برای هر دو مورد زمان تکمیل I/O و کارهای معوقه‌ای (backlog) باشد که ممکن است در حال انباشته شدن باشند.
نانوثانیه‌های صرف‌شده برای سرویس‌دهی به خواندن‌ها به ازای هر دستگاه device-mapper.
نانوثانیه‌های صرف‌شده برای سرویس‌دهی به نوشتن‌ها به ازای هر دستگاه device-mapper.
فیلدهای هیستوگرام (Histogram fields)
هیستوگرام‌ها توزیع فراوانی بازه‌های تاخیر I/O مشخص‌شده توسط کاربر را اندازه می‌گیرند. مرزهای ستون‌های هیستوگرام (bin) هنگام ایجاد یک ناحیه مشخص می‌شوند.
نام نمونه نشان‌دهنده devicename، شناسه ناحیه (region id) و مرزهای ستون‌ها است.
فهرستی از شمارش‌های هیستوگرام برای ناحیه آماری جاری به ترتیب صعودی مقدار تاخیر. هر مقدار نشان‌دهنده تعداد I/Oهایی است که زمان تاخیر آن‌ها در طول دوره نمونه‌برداری در محدوده زمانی آن ستون قرار گرفته است.
تعداد ستون‌های هیستوگرام تاخیر پیکربندی‌شده برای ناحیه.

# dmstats create looptest0 --bounds 10us,30us,50us
looptest0: Created new region with 1 area(s) as region ID 0


# pminfo -f dmstats.read dmstats.histogram.hist_count

dmstats.read
inst [0 or "looptest0"] value 4099

dmstats.histogram.hist_count
inst [0 or "looptest0:0:0s"] value 1
inst [1 or "looptest0:0:10us"] value 3752
inst [2 or "looptest0:0:30us"] value 250
inst [3 or "looptest0:0:50us"] value 96

$PCP_PMDAS_DIR/dm/help
فایل متنی راهنمای پیش‌فرض برای معیارهای dm
$PCP_PMDAS_DIR/dm/Install
اسکریپت نصب برای عامل pmdadm
$PCP_PMDAS_DIR/dm/Remove
اسکریپت لغو نصب برای عامل pmdadm
$PCP_LOG_DIR/pmcd/dm.log
فایل لاگ پیش‌فرض برای پیام‌های خطای pmdadm

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

گزینه -D یا --debug خروجی اطلاعات عیب‌یابی تکمیلی را در stderr برای کمک به تفکیک و اولویت‌بندی مشکلات فعال می‌کند، اگرچه این اطلاعات گاهی مبهم بوده و در درجه اول برای راهنمایی توسعه‌دهندگان در نظر گرفته شده است تا کاربران نهایی. debug فهرستی از گزینه‌های اشکال‌زدایی جداشده با کاما است؛ از pmdbg(1) همراه با گزینه -l برای دریافت فهرستی از گزینه‌های اشکال‌زدایی موجود و معانی آن‌ها استفاده کنید.

PCPIntro(1)، pmcd(1)، pmstore(1)، dmsetup(8) و dmstats(8).

PCP Performance Co-Pilot