PCP-DSTAT(1) General Commands Manual PCP-DSTAT(1)

pcp-dstat - ابزاری همه‌کاره برای تولید آمار منابع سیستم

pcp [pcp options] dstat [-acdfghilmnpqrstuvVy?] [-C cpus] [-G gpus] [-D disks] [-L DM devices] [-M MD devices] [-P partitions] [-I interrupts] [-N interfaces] [-o output-file] [-S swap-devices] [--bits] [--bw] [--color] [--float] [--integer] [--nocolor] [--noheaders] [--nomissed] [--noupdate] [--list] [--pidfile pid-file] [--plugin] [--all-plugins] [delay [count]]

ابزار pcp-dstat یک ابزار عمومی برای تحلیل کارایی است که امکان مشاهده هم‌زمان و لحظه‌ای منابع متعدد سیستم را فراهم می‌سازد؛ برای نمونه می‌توانید مصرف دیسک را در کنار وقفه‌های ارسال‌شده از کنترل‌کننده دیسک بررسی کنید، یا ارقام پهنای باند شبکه را به‌طور مستقیم با توان عملیاتی (throughput) دیسک (در همان بازه زمانی) بسنجید.

این ابزار همچنین به‌شکلی هوشمندانه دقیق‌ترین اطلاعات را در قالب ستون‌ها در اختیارتان می‌گذارد و مرتبه و واحد داده‌های ارائه‌شده در خروجی را با وضوح مشخص می‌کند. سردرگمی کمتر، خطاهای اندک‌تر، و کارایی بالاتر.

آرگومان delay میزان تأخیر میان هر به‌روزرسانی بر حسب ثانیه است، و count تعداد دفعات به‌روزرسانی پیش از خروج را مشخص می‌کند. مقدار پیش‌فرض delay برابر با ۱ ثانیه بوده و مقدار count تعیین‌نشده است (اجرا تا زمان توقف دستی با وقفه یا رسیدن به انتهای فایل بایگانی ادامه می‌یابد).

این جدیدترین نسل Dstat، یعنی pcp-dstat، امکان تحلیل داده‌های کارایی گذشته‌نگر (در قالب آرشیو PCP ایجادشده توسط pmlogger(1)) و همچنین تحلیل سیستم‌های توزیع‌شده با استفاده از داده‌های کارایی زنده از میزبان‌های دوردستی که فرایند pmcd(1) را اجرا می‌کنند، فراهم می‌سازد.

مفهوم اولیه «پلاگین‌ها» در Dstat جای خود را به استفاده از معیارهای دارای نام در یک «فضای نام معیارهای کارایی» (PMNS(5)) داده است که توسط کارگزاران دامنه معیارهای کارایی (PMDA) ارائه می‌شوند. معیارها و سایر اطلاعات قالب‌بندی اکنون در قالب فایل‌های پیکربندی افزونه با ساختار pcp-dstat(5) تعریف می‌شوند. این سبک جدید افزونه‌ها یا به‌صورت توکار هستند (تنها برای گزارش‌های مبتنی بر زمان)، یا از مسیر سراسری سیستم ($PCP_SYSCONF_DIR/dstat) و/یا از مجموعه افزونه‌های اختصاصی هر کاربر ($HOME/.pcp/dstat) بارگذاری می‌شوند.

فهرست تمام افزونه‌های دردسترس را می‌توان با استفاده از گزینه خط فرمانی --list در dstat مشاهده کرد..SH "گزینه‌ها (OPTIONS)" هنگامی که از طریق دستور pcp(1) فراخوانی شود، گزینه‌های -h/--host، -a/--archive، -O/--origin، -Z/--timezone و چندین گزینه pcp دیگر به‌طور غیرمستقیم دردسترس قرار می‌گیرند؛ برای شرح کامل این گزینه‌ها به PCPIntro(1) مراجعه کنید.

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

فهرست کردن نام تمام افزونه‌های دردسترس
فعال کردن هر افزونه با نام
معادل -cdngy (مجموعه افزونه‌های پیش‌فرض)
فعال کردن آمار CPU (سیستم، کاربر، بی‌کار، انتظار)؛ برای آمار بیشتر مرتبط با CPU همچنین ببینید: --cpu-adv و --cpu-use
شامل کردن CPU0، CPU3 و total (هنگام استفاده از -c/--cpu)؛ برای نمایش همه CPUها از all استفاده کنید
فعال کردن آمار برای معماری خاص GPU (میزان بهره‌وری، مصرف حافظه)
شامل کردن GPU0 و GPU3 (هنگام استفاده از --amd-gpu یا --nvidia-gpu)
فعال کردن آمار دیسک (خواندن، نوشتن)؛ برای آمار بیشتر مرتبط با دیسک به دیگر افزونه‌های --disk نگاه کنید
شامل کردن total و hda (هنگام استفاده از -d/--disk یا افزونه --disk-tps)
فعال کردن آمار device mapper (خواندن، نوشتن)؛ برای آمار بیشتر مرتبط با device-mapper به دیگر افزونه‌های --dm نگاه کنید
شامل کردن total، root و home (هنگام استفاده از --dm/--device-mapper یا افزونه --dm-tps)
فعال کردن آمار درایور چنددستگاهی (خواندن، نوشتن)؛ برای آمار بیشتر مرتبط با درایور چنددستگاهی به دیگر افزونه‌های --md نگاه کنید
شامل کردن total و md-0 (هنگام استفاده از --md/--multi-device یا افزونه --md-tps)
فعال کردن آمار پارتیشن دیسک (خواندن، نوشتن)؛ برای آمار بیشتر مرتبط با پارتیشن به دیگر افزونه‌های --part نگاه کنید
شامل کردن total و sda2 (هنگام استفاده از --part/--partition یا افزونه --part-tps)
فعال کردن آمار صفحه حافظه (ورود صفحه، خروج صفحه)
فعال کردن آمار وقفه
شامل کردن وقفه ۵ و ۱۰ (هنگام استفاده از -i/--int)
فعال کردن آمار میانگین بار (۱ دقیقه، ۵ دقیقه، ۱۵ دقیقه)
فعال کردن آمار حافظه (مصرف‌شده، بافرها، کَش، آزاد)؛ برای آمار بیشتر مرتبط با حافظه همچنین امتحان کنید: --mem-adv و --swap
فعال کردن آمار شبکه (دریافت، ارسال)
شامل کردن eth1 و total (هنگام استفاده از -n/--net)
نمایش تعداد بسته‌های دریافت‌شده و ارسال‌شده
فعال کردن آمار فرایندها (قابل اجرا، وقفه‌ناپذیر، جدید)
نمایش تعداد کل فرایندها
فعال کردن آمار درخواست‌های I/O (درخواست‌های خواندن، نوشتن)
فعال کردن آمار فضای تعویض (مصرف‌شده، آزاد)
شامل کردن swap1 و total (هنگام استفاده از -s/--swap)

--snooze نمایش زمان صرف‌شده میان به‌روزرسانی‌ها به ثانیه

فعال کردن خروجی زمان/تاریخ (برای دقت میلی‌ثانیه‌ای --time-adv، یا برای قالب کمینه‌ایِ ساعت:دقیقه:ثانیه --times را امتحان کنید)
فعال کردن شمارنده زمان (ثانیه‌ها از زمان مبدأ، یا دقت میلی‌ثانیه‌ای از افزونه --epoch-adv)
فعال کردن ستون گزارش زمان سیستم در قالب کوتاه (ساعت:دقیقه:ثانیه)
فعال کردن آمار سیستم (وقفه‌ها، تعویض‌های زمینه)
فعال کردن آمار aio (ورودی/خروجی ناهمگام)
فعال کردن آمار پیشرفته CPU
تنها فعال کردن آمار مصرف CPU
میانگین طول صف درخواست‌هایی که به دستگاه صادر شده‌اند
میانگین اندازه (بر حسب سکتور) درخواست‌هایی که به دستگاه صادر شده‌اند
میانگین زمان خدمت‌رسانی (بر حسب میلی‌ثانیه) برای درخواست‌های I/O که به دستگاه صادر شده‌اند
تعداد انتقال‌ها بر ثانیه که به دستگاه صادر شده‌اند
درصد زمانی از CPU که در طول آن درخواست‌های I/O به دستگاه صادر شده‌اند (بهره‌وری پهنای باند برای دستگاه)
میانگین زمان (بر حسب میلی‌ثانیه) برای خدمت‌رسانی به درخواست‌های I/O صادرشده به دستگاه
فعال کردن آمار سیستم‌فایل (فایل‌های باز، inodeها)
فضای مصرف‌شده و دردسترس به ازای هر سیستم‌فایل.TP --ipc فعال‌سازی آمار ipc (صف پیام، سمافورها، حافظه مشترک)
فعال‌سازی آمار قفل فایل (posix، flock، خواندن، نوشتن)
فعال‌سازی آمار پیشرفته حافظه
فعال‌سازی آمار raw (سوکت‌های raw)
فعال‌سازی آمار سوکت (مجموع، tcp، udp، raw، قطعات ip)
فعال‌سازی آمار tcp (شنود، برقرار، syn، time_wait، بسته)
فعال‌سازی آمار udp (شنود، فعال)
فعال‌سازی آمار unix (دیتاگرام، جریان، شنود، فعال)
نمایش اطلاعات ورود به سیستم از utmp(5)
فعال‌سازی آمار حافظه مجازی (خطاهای برگه سخت، خطاهای برگه نرم، تخصیص‌یافته، آزاد)
فعال‌سازی آمار پیشرفته حافظه مجازی (steal، scanK، scanD، pgoru، astll)
نمایش عملیات کلاینت NFS v3
نمایش عملیات تفصیلی کلاینت NFS v3
نمایش عملیات سرور NFS v3
نمایش عملیات تفصیلی سرور NFS v3
نمایش عملیات تفصیلی سرور NFS v4
نمایش آمار NFS v4
نمایش آمار فراخوانی‌های کلاینت فراخوانی روال از دور (RPC)
نمایش آمار فراخوانی‌های سرور فراخوانی روال از دور (RPC)
نمایش پرمصرف‌ترین فرایند از نظر ورودی/خروجی بلوکی (block I/O)
نمایش پرمصرف‌ترین فرایند از نظر ورودی/خروجی بلوکی (شامل PID و سایر آمارها)
نمایش فرایندی با بیشترین زمان انتظار برای فرزند
نمایش پرمصرف‌ترین فرایند از نظر پردازنده (CPU)
نمایش پرمصرف‌ترین فرایند از نظر پردازنده (شامل PID و سایر آمارها)
نمایش فرایندی با بیشترین مصرف زمان پردازنده (به میلی‌ثانیه)
نمایش فرایندی با بیشترین میانگین برش زمانی (به میلی‌ثانیه)
نمایش پرمصرف‌ترین فرایند از نظر ورودی/خروجی (I/O)
نمایش پرمصرف‌ترین فرایند از نظر ورودی/خروجی (شامل PID و سایر آمارها)
نمایش فرایندی با بیشترین تاخیر کل (به میلی‌ثانیه)
نمایش فرایندی با بیشترین میانگین تاخیر (به میلی‌ثانیه)
نمایش فرایندی با بیشترین مصرف حافظه
نمایش فرایندی که پیش از همه توسط کشنده کمبود حافظه (OOM killer) خاتمه خواهد یافت
گسترش فهرست‌های شناسایی -C، -D، -I، -N و -S
معادل با -pmgdsc -D total
اجبار نمایش بر حسب بیت برای مقادیری که به بایت بیان شده‌اند
اجبار نمایش مقادیر ممیز شناور در صفحه (ناسازگار با --integer)
اجبار نمایش مقادیر عدد صحیح در صفحه (ناسازگار با --float)
تغییر رنگ‌ها برای ترمینال‌های با پس‌زمینه سفید
غیرفعال کردن رنگ‌ها
غیرفعال کردن سرآیندهای تکراری
غیرفعال کردن هشدارهای تیک‌های از دست‌رفته برای نمونه‌های میانی.
غیرفعال کردن به‌روزرسانی‌های میانی هنگامی که delay بزرگ‌تر از ۱ باشد.
نوشتن خروجی با قالب CSV (مقادیر جداشده با کاما) در یک file.
نوشتن شناسه فرایند در file داده‌شده..SH "پلاگین‌های معیارهای اختیاری (OPTIONAL METRICS PLUGINS)" برخی از فایل‌های پیکربندی pcp-dstat فراتر از مجموعه‌ی پیش‌فرضِ نصب‌شده، نیازمند نصب Performance Metric Domain Agents اختیاری هستند.
میزان شارژ باقی‌مانده‌ی باتری به درصد (نیازمند Denki PMDA)
ورودی/خروجی (I/O) خواندن/نوشتن GPFS (نیازمند GPFS PMDA)
عملیات‌های سیستم‌فایل GPFS (نیازمند GPFS PMDA)
نمایش آمار بافر innodb (نیازمند MySQL PMDA)
نمایش آمار I/O در innodb (نیازمند MySQL PMDA)
نمایش شمارنده‌های عملیات‌های innodb (نیازمند MySQL PMDA)
نمایش توان گذردهی I/O در lustre (نیازمند Lustre PMDA)
نمایش تعداد hitها و missها در memcache (نیازمند Memcached PMDA)
نمایش آمار دستورهای MySQL5 (نیازمند MySQL PMDA)
نمایش آمار اتصال‌های MySQL5 (نیازمند MySQL PMDA)
نمایش آمار innodb در MySQL5 (نیازمند MySQL PMDA)
نمایش آمار I/O در MySQL5 (نیازمند MySQL PMDA)
نمایش آمار کلیدهای MySQL5 (نیازمند MySQL PMDA)
نمایش آمار I/O در MySQL (نیازمند MySQL PMDA)
نمایش آمار کلیدهای MySQL (نیازمند MySQL PMDA)
نمایش اندازه‌ی صف‌های postfix (نیازمند Postfix PMDA)
نمایش آمار Redis (نیازمند Redis PMDA)
نمایش اندازه‌ی صف sendmail (نیازمند Sendmail PMDA)
نمایش آمار ARC در ZFS (نیازمند ZFS PMDA)
نمایش آمار L2ARC در ZFS (نیازمند ZFS PMDA)
نمایش آمار ZIL در ZFS (نیازمند ZFS PMDA)

هر کسی می‌تواند فایل‌های پیکربندی افزونه‌ی سفارشی و اضافی برای pcp-dstat برای هر معیاری ایجاد کند - فهرست معیارهای موجود را می‌توان با دستور pminfo(1) یا pmprobe(1) به دست آورد.

موارد زیر هنوز معیارهای پشتیبان ندارند، اما از ابزار اصلی Dstat گنجانده شده‌اند. لطفاً اگر به هر یک از این موارد نیاز دارید یا آن‌ها را پیاده‌سازی کرده‌اید، با <pcp@groups.io> تماس بگیرید تا با همکاری شما به برنامه اضافه شوند.

زمان باقی‌مانده‌ی باتری به ساعت و دقیقه (نیازمند ACPI PMDA)
فرکانس پردازنده (CPU) به درصد (نیازمند ACPI PMDA)
تعداد اتصال‌های dbus (نیازمند python-dbus PMDA)
سرعت فن (نیازمند ACPI PMDA)
نمایش پیشرفت و سرعت RAID نرم‌افزاری (درایور MD) (نیازمند معیارهای جدید disk.md)
نمایش مصرف انرژی (نیازمند ACPI PMDA)
نمایش اندازه‌ی صف‌های qmail (نیازمند qmail)
نمایش آمار مصرف squid (نیازمند Squid PMDA)
حسگرهای دمای سیستم (نیازمند ACPI PMDA)
نمایش آمار پردازنده‌ی VMware از هایپروایزر (نیازمند VMware PMDA)
نمایش آمار حافظه‌ی VMware از هایپروایزر (نیازمند VMware PMDA)
نمایش آمار پیشرفته‌ی حافظه‌ی VMware از هایپروایزر (نیازمند VMware PMDA)
نمایش آمار vmhba در هسته‌ی VMware ESX (نیازمند VMware PMDA)
نمایش آمار وقفه‌ی هسته‌ی VMware ESX (نیازمند VMware PMDA)
نمایش آمار پورت‌های هسته‌ی VMware ESX (نیازمند VMware PMDA)
نمایش مصرف CPU به ازای هر مهمان OpenVZ (نیازمند OpenVZ PMDA)
نمایش مصرف I/O به ازای هر مهمان OpenVZ (نیازمند OpenVZ PMDA)
نمایش شمارنده‌های کاربر OpenVZ (user beancounters) (نیازمند OpenVZ PMDA)
کیفیت پیوند بی‌سیم و نسبت سیگنال به نویز (نیازمند معیارهای Linux PMDA).SH "به‌روزرسانی‌های میانی (INTERMEDIATE UPDATES)" هنگام فراخوانی pcp-dstat با یک delay (تأخیر) بیشتر از ۱ ثانیه و بدون گزینهٔ --noupdate، به‌روزرسانی‌های میانی نمایش داده می‌شوند؛ بدین صورت که بار اول میانگین ۱ ثانیه‌ای، در به‌روزرسانی دوم میانگین ۲ ثانیه‌ای و به همین ترتیب تا زمانی که delay فرا برسد.

بنابراین در صورتی که تأخیر ۱۰ ثانیه‌ای مشخص کرده باشید، ۹ به‌روزرسانی میانی تصویر لحظه‌ای نیستند، بلکه میانگین‌هایی از زمان سپری‌شده از آخرین به‌روزرسانی نهایی هستند. نتیجهٔ نهایی این است که درست همانند vmstat(1) میانگین ۱۰ ثانیه‌ای را در یک سطر جدید دریافت می‌کنید.

استفاده از pcp-dstat برای مرتبط ساختن توان عملیاتی دیسک با مصرف شبکه (eth0)، مجموع مصرف پردازنده و شمارنده‌های سیستم:

$ pcp dstat -dnyc -N eth0 -C total -f 5


استفاده از پلاگین time به همراه پلاگین‌های cpu، net، disk، system، load و proc:

$ pcp dstat -tcndylp


این دستور هم‌ارز است با:

$ pcp dstat --time --cpu --net --disk --sys --load --proc


استفاده از pcp-dstat برای گزارش ۱۰ نمونه از معیارهای ثبت‌شده در یک بایگانی PCP به نام 20180729 از ساعت ۲:۳۰ بامداد:

$ pcp --origin '@02:30' -a 20180729 dstat --time --cpu-adv --sys 1 10

بررسی زندهٔ همین معیارها از یک میزبان دوردست:

$ pcp --host www.acme.com dstat --time --cpu-adv --sys 1 10


$HOME/.pcp/dstat/
فایل‌های پیکربندی اختصاصی هر کاربر
$PCP_SYSCONF_DIR/dstat/
فایل‌های پیکربندی سراسری سیستم

رفتار پلاگین‌های داخلی را می‌توان با متغیرهای محیطی تغییر داد.

رشتهٔ قالب‌بندی strftime(3) برای گزارش زمان (گزینهٔ --time را ببینید)

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

برای متغیرهای محیطی اثرگذار بر ابزارهای PCP، به pmGetOptions(3) مراجعه کنید.

ابزار Dstat در ابتدا توسط Dag Wieers <dag@wieers.com> نوشته شد.

وبگاه اصلی Dstat در http://dag.wieers.com/home-made/dstat قرار دارد.

این صفحهٔ راهنما در ابتدا توسط Andrew Pollock <apollock@debian.org> برای سیستم Debian GNU/Linux نوشته شد.

ابزار pcp-dstat توسط توسعه‌دهندگان PCP <pcp@groups.io> نوشته شده و نگهداری می‌شود.

وبگاه اصلی PCP در https://pcp.io قرار دارد..SH "همچنین ببینید (SEE ALSO)" PCPIntro(1), pcp(1), pmcd(1), pminfo(1), pmlogger(1), pmprobe(1), vmstat(1), pmGetOptions(3), strftime(3), PMNS(5), pcp.conf(5), pcp-dstat(5) و utmp(5).

PCP Performance Co-Pilot