DOOL(1)   DOOL(1)

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

dool [-afv] [options..] [delay [count]]

ابزار Dool یک جایگزین همه‌کاره و منعطف برای دستورهای vmstat، iostat و ifstat است. دستور Dool برخی از محدودیت‌های آن‌ها را برطرف کرده و قابلیت‌های بیشتری را ارائه می‌دهد.

ابزار Dool به شما امکان می‌دهد تمامی منابع سیستم خود را فوراً و به‌صورت زنده مشاهده کنید؛ برای نمونه می‌توانید مصرف دیسک را در کنار وقفه‌های ارسالی از کنترلر IDE بررسی کنید، یا آمار پهنای باند شبکه را مستقیماً با توان عملیاتی (throughput) دیسک در یک بازه زمانی یکسان مقایسه نمایید.

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

ویژگی منحصربه‌فرد Dool این است که به شما امکان می‌دهد توان عملیاتی دستگاه‌های بلوکی (block devices) را برای یک مجموعه دیسک خاص، یا پهنای باند شبکه را برای گروهی از رابط‌ها تجمیع کنید؛ به این معنی که می‌توانید توان عملیاتی تمامی دستگاه‌های بلوکی تشکیل‌دهندهٔ یک سیستم‌فایل یا ذخیره‌ساز را به‌صورت یکجا بررسی کنید.

دستور Dool امکان نوشتن مستقیم داده‌ها در یک فایل CSV را فراهم می‌آورد تا بتوان از آن برای تولید نمودار در نرم‌افزارهایی چون OpenOffice، Gnumeric یا Excel استفاده کرد.

-c, --cpu

فعال‌سازی آمار پردازنده (سیستم، کاربر، بیکار، انتظار)؛ برای آمارهای بیشتر مربوط به پردازنده، گزینه‌های --cpu-adv و --cpu-use را نیز ببینید.

-C 0,3,total

شامل کردن cpu0، cpu3 و total (هنگام استفاده از -c/--cpu)؛ از all برای نمایش تمام پردازنده‌ها استفاده کنید.

-d, --disk

فعال‌سازی آمار دیسک (خواندن، نوشتن)؛ برای آمارهای بیشتر در رابطه با دیسک، سایر افزونه‌های --disk را بررسی کنید.

-D total,sda

شامل کردن total و sda (هنگام استفاده از --disk).

--diskset diskset_name:dev1,dev2,dev3,etc...

دسته‌بندی چند دیسک با یکدیگر و گزارش آمار تجمیعی (هنگام استفاده از --disk).

-g, --page

فعال‌سازی آمار پیجینگ حافظه (page in، page out).

-i, --int

فعال‌سازی آمار وقفه‌ها (interrupts).

-I 5,10

شامل کردن وقفه‌های ۵ و ۱۰ (هنگام استفاده از -i/--int).

-l, --load

فعال‌سازی آمار میانگین بار سیستم (۱ دقیقه، ۵ دقیقه، ۱۵ دقیقه).

-m, --mem

فعال‌سازی آمار حافظه (مصرف‌شده، بافرها، کَش، آزاد)؛ برای آمارهای بیشتر حافظه، گزینه‌های --mem-adv و --swap را نیز امتحان کنید.

-n, --net

فعال‌سازی آمار شبکه (دریافت، ارسال).

-N eth1,total

شامل کردن eth1 و total (هنگام استفاده از -n/--net).

-p, --proc

فعال‌سازی آمار فرآیندها (آماده‌به‌اجرا، غیرقابل‌وقفه، جدید).

-r, --io

فعال‌سازی آمار درخواست‌های I/O (درخواست‌های خواندن و نوشتن).

-s, --swap

فعال‌سازی آمار حافظه swap (مصرف‌شده، آزاد).

-S swap1,total

شامل کردن swap1 و total (هنگام استفاده از -s/--swap).

-t, --time

فعال‌سازی نمایش زمان/تاریخ در خروجی.

-T, --epoch

فعال‌سازی شمارنده زمان (ثانیه‌های سپری‌شده از مبدأ epoch).

-y, --sys

فعال‌سازی آمار سیستم (وقفه‌ها، تعویض زمینه یا context switches).

--aio

فعال‌سازی آمار aio (ورودی/خروجی ناهمگام).

--cpu-adv

فعال‌سازی آمار پیشرفته پردازنده.

--cpu-use

تنها فعال‌سازی آمار میزان استفاده از پردازنده.

--fs, --filesystem

فعال‌سازی آمار سیستم‌فایل (فایل‌های باز، inodeها).

--ipc

فعال‌سازی آمار ipc (صف پیام، سمافورها، حافظه اشتراکی).

--lock

فعال‌سازی آمار قفل‌های فایل (posix، flock، خواندن، نوشتن). --mem-adv
فعال‌سازی آمار پیشرفتهٔ حافظه

--raw

فعال‌سازی آمار خام (سوکت‌های raw)

--socket

فعال‌سازی آمار سوکت (total، tcp، udp، raw، ip-fragments)

--tcp

فعال‌سازی آمار tcp (شامل listen، established، syn، time_wait، close)

--udp

فعال‌سازی آمار udp (شامل listen، active)

--unix

فعال‌سازی آمار unix (شامل datagram، stream، listen، active)

--vm

فعال‌سازی آمار vm (خطاهای برگهٔ سخت، خطاهای برگهٔ نرم، تخصیص‌یافته، آزاد)

--vm-adv

فعال‌سازی آمار پیشرفتهٔ vm (شامل steal، scanK، scanD، pgoru، astll)

--zones

فعال‌سازی آمار zoneinfo (شامل d32F، d32H، normF، normH)

--<plugin-name>

فعال‌سازی افزونه‌های (خارجی) با نام افزونه؛ برای گزینه‌ها PLUGINS را ببینید

آمارهای داخلی ممکن عبارتند از:

aio، cpu، cpu24، cpu-adv، cpu-use، disk، disk24، disk24-old، epoch، fs، int، int24، io، ipc، load، lock، mem، mem-adv، net، page، page24، proc، raw، socket، swap، swap-old، sys، tcp، time، udp، unix، vm، vm-adv، zones

--list

فهرست کردن نام‌های افزونه‌های داخلی و خارجی

-a, --all

معادل -cdngy (پیش‌فرض)

-f, --full

گسترش فهرست‌های شناسایی -C، -D، -I، -N و -S

-v, --vmstat

معادل -pmgdsc -D total

--bits

اجبار به نمایش برحسب بیت برای مقادیری که به بایت بیان شده‌اند

--bytes

اجبار به نمایش برحسب بایت برای مقادیری که به بیت بیان شده‌اند

--float

اجبار به نمایش مقادیر اعشاری روی صفحه (ناسازگار با --integer)

--integer

اجبار به نمایش مقادیر صحیح روی صفحه (ناسازگار با --float)

--color

اجبار به خروجی ۲۵۶ رنگ (پیش‌فرض)

--color16

اجبار به خروجی ۱۶ رنگ

--bw, --blackonwhite

تغییر رنگ‌ها برای ترمینال‌های با پس‌زمینهٔ سفید

--nocolor

غیرفعال‌سازی رنگ‌ها

--noheaders

غیرفعال‌سازی سرآیندهای تکراری

--noupdate

غیرفعال‌سازی به‌روزرسانی‌های میانی هنگامی که delay > 1 است

--output file

نوشتن خروجی CSV در file

--display

نمایش داده‌های جدولی روی صفحه نمایش. هنگام استفاده همراه با --output برای نمایش روی صفحه و نوشتن هم‌زمان در یک فایل کاربرد دارد

--dstat

فعال‌سازی حالت خروجی قدیمی Dstat

--profile

نمایش آمارهای پروفایلینگ هنگام خروج از dool

--ascii

خروجی دادن داده‌های جدول با فرمت ascii به‌جای ANSI

در حالی که هر کسی می‌تواند افزونه‌های dool خود را بسازد (و در توسعه آن مشارکت کند)، dool به‌طور پیش‌فرض همراه با چندین افزونه عرضه می‌شود که قابلیت‌های آن را تا حد زیادی گسترش می‌دهند. در ادامه نمایی کلی از افزونه‌هایی که همراه با dool ارائه می‌شوند آمده است:

--battery

میزان باتری به درصد (نیازمند ACPI)

--battery-remain

زمان باقی‌مانده باتری بر حسب ساعت، دقیقه (نیازمند ACPI)

--cpufreq

فرکانس پردازنده به درصد (نیازمند ACPI)

--dbus

تعداد اتصالات dbus (نیازمند python-dbus)

--disk-avgqu

میانگین طول صف درخواست‌های ارسال‌شده به دستگاه

--disk-avgrq

میانگین اندازه (بر حسب سکتور) درخواست‌های ارسال‌شده به دستگاه

--disk-svctm

میانگین زمان سرویس‌دهی (بر حسب میلی‌ثانیه) برای درخواست‌های I/O ارسال‌شده به دستگاه

--disk-tps

تعداد تراکنش‌ها یا انتقال‌ها در ثانیه ارسال‌شده به دستگاه

--disk-util

درصد زمان پردازنده که طی آن درخواست‌های I/O به دستگاه ارسال شده‌اند (میزان بهره‌وری پهنای باند برای دستگاه)

--disk-wait

میانگین زمان (بر حسب میلی‌ثانیه) برای پاسخ‌گویی به درخواست‌های I/O ارسال‌شده به دستگاه

--dool

نمایش میزان مصرف cputime و تأخیر برنامه dool

--dool-cpu

نمایش میزان پیشرفته استفاده پردازنده توسط dool

--dool-ctxt

نمایش تعویض‌های زمینه (context switches) برنامه dool

--dool-mem

نمایش میزان پیشرفته مصرف حافظه توسط dool

--fan

سرعت فن (نیازمند ACPI)

--freespace

فضای مصرفی دیسک به تفکیک سیستم‌فایل

--gpfs

ورودی/خروجی خواندن/نوشتن GPFS (نیازمند mmpmon)

--gpfs-ops

عملیات سیستم‌فایل GPFS (نیازمند mmpmon)

--helloworld

افزونه نمونه «Hello world» برای dool

--innodb-buffer

نمایش آمار بافر innodb

--innodb-io

نمایش آمار I/O در innodb

--innodb-ops

نمایش شمارنده‌های عملیات innodb

--lustre

نمایش توان عملیاتی ورودی/خروجی lustre

--lnet

نمایش آمار ورودی/خروجی شبکه lustre

--md-status

نمایش پیشرفت و سرعت raid نرم‌افزاری (md)

--memcache-hits

نمایش تعداد درخواست‌های موفق (hits) و ناموفق (misses) در memcache

--mysql5-cmds

نمایش آمار دستورات MySQL5

--mysql5-conn

نمایش آمار اتصالات MySQL5

--mysql5-innodb

نمایش آمار innodb در MySQL5

--mysql5-io

نمایش آمار ورودی/خروجی MySQL5

--mysql5-keys

نمایش آمار کلیدهای MySQL5

--mysql-io

نمایش آمار ورودی/خروجی MySQL

--mysql-keys

نمایش آمار کلیدهای MySQL

--net-packets

نمایش تعداد بسته‌های دریافت‌شده و ارسال‌شده

--nfs3

نمایش عملیات کلاینت NFS v3

--nfs3-ops

نمایش عملیات پیشرفته کلاینت NFS v3 --nfsd3
نمایش عملیات‌های کارساز NFS v3

--nfsd3-ops

نمایش عملیات‌های گسترش‌یافته کارساز NFS v3

--nfsd4-ops

نمایش عملیات‌های گسترش‌یافته کارساز NFS v4

--nfsstat4

نمایش آمار NFS v4

--ntp

نمایش زمان NTP از یک کارساز NTP

--postfix

نمایش اندازه‌های صف postfix (نیازمند postfix)

--power

نمایش مصرف انرژی

--proc-count

نمایش تعداد کل فرایندها

--qmail

نمایش اندازه‌های صف qmail (نیازمند qmail)

--redis: نمایش آمار redis

--rpc

نمایش آمار فراخوانی‌های کارخواه RPC

--rpcd

نمایش آمار فراخوانی‌های کارساز RPC

--sendmail

نمایش اندازه صف sendmail (نیازمند sendmail)

--snmp-cpu

نمایش آمار CPU با استفاده از SNMP از DOOL_SNMPSERVER

--snmp-load

نمایش آمار بار سیستم با استفاده از SNMP از DOOL_SNMPSERVER

--snmp-mem

نمایش آمار حافظه با استفاده از SNMP از DOOL_SNMPSERVER

--snmp-net

نمایش آمار شبکه با استفاده از SNMP از DOOL_SNMPSERVER

--snmp-net-err: نمایش خطاهای شبکه با استفاده از SNMP از DOOL_SNMPSERVER

--snmp-sys

نمایش آمار سیستم (وقفه‌ها و تعویض بافت‌ها) با استفاده از SNMP از DOOL_SNMPSERVER

--snooze

نمایش تعداد تیک‌ها در هر ثانیه

--squid

نمایش آمار مصرف squid

--test

نمایش خروجی افزونه آزمایشی

--thermal

حسگرهای دمای سیستم

--top-bio

نمایش پرمصرف‌ترین فرایند I/O بلوکی

--top-bio-adv

نمایش پرمصرف‌ترین فرایند I/O بلوکی (شامل pid و دیگر آمارها)

--top-childwait

نمایش فرایندی با بیشترین انتظار برای فرزند

--top-cpu

نمایش پرمصرف‌ترین فرایند CPU

--top-cpu-adv

نمایش پرمصرف‌ترین فرایند CPU (شامل pid و دیگر آمارها)

--top-cputime

نمایش فرایندی با بیشترین زمان مصرف CPU (به میلی‌ثانیه)

--top-cputime-avg

نمایش فرایندی با بیشترین میانگین برش زمانی (به میلی‌ثانیه)

--top-int

نمایش پرتکرارترین وقفه

--top-io

نمایش پرمصرف‌ترین فرایند I/O

--top-io-adv

نمایش پرمصرف‌ترین فرایند I/O (شامل pid و دیگر آمارها)

--top-latency

نمایش فرایندی با بیشترین تأخیر کل (به میلی‌ثانیه)

--top-latency-avg

نمایش فرایندی با بیشترین میانگین تأخیر (به میلی‌ثانیه)

--top-mem

نمایش فرایندی که بیشترین حافظه را مصرف می‌کند

--top-oom

نمایش فرایندی که زودتر از همه توسط OOM کشته خواهد شد

--utmp

نمایش تعداد اتصالات utmp (نیازمند python-utmp) --vm-cpu
نمایش آمار پردازنده VMware از هایپروایزر

--vm-mem

نمایش آمار حافظه VMware از هایپروایزر

--vm-mem-adv

نمایش آمار پیشرفته حافظه VMware از هایپروایزر

--vmk-hba

نمایش آمار vmhba در هسته VMware ESX

--vmk-int

نمایش آمار وقفه در هسته VMware ESX

--vmk-nic

نمایش آمار درگاه‌های هسته VMware ESX

--vz-cpu

نمایش مصرف پردازنده به ازای هر مهمان OpenVZ

--vz-io

نمایش مصرف I/O به ازای هر مهمان OpenVZ

--vz-ubc

نمایش beancounters کاربر OpenVZ

--wifi

کیفیت پیوند بی‌سیم و نسبت سیگنال به نویز

--zfs-arc

نمایش آمار arc در ZFS

--zfs-l2arc

نمایش آمار l2arc در ZFS

--zfs-zil

نمایش آمار zil در ZFS

delay تاخیر زمانی بر حسب ثانیه بین هر به‌روزرسانی است

count تعداد به‌روزرسانی‌ها برای نمایش پیش از خروج است

مقدار پیش‌فرض delay برابر با ۱ و count نامشخص (نامحدود) است

هنگام فراخوانی dool با یک delay بزرگ‌تر از ۱ و بدون گزینه --noupdate، به‌روزرسانی‌های میانی نمایش داده می‌شوند؛ یعنی بار نخست یک میانگین ۱ ثانیه‌ای، در به‌روزرسانی دوم میانگین ۲ ثانیه‌ای و غیره، تا زمانی که مقدار تاخیر سپری شود.

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

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

dool -dnyc -N eth0 -C total -f 5

بررسی رفتار dool و اثرگذاری dool بر سیستم:

dool -taf --debug

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

dool -tcndylp --top-cpu

این معادل است با

dool --time --cpu --net --disk --sys --load --proc --top-cpu

استفاده از dool برای مرتبط ساختن آمار پیشرفته پردازنده با وقفه به ازای هر دستگاه:

dool -t --cpu-adv -yif

از آن‌جا که آزمایش dool روی هر ترکیب ممکنی از نسخهٔ هسته، python یا توزیع عملاً غیرممکن است، برای رفع مشکلات باقی‌مانده به یاری و بازخورد شما نیاز دارم. اگر پیشنهادی برای بهبود یا گزارش باگی دارید، لطفاً آن را به این نشانی بفرستید: dag@wieers.com[1]


نکته

لطفاً برای باگ‌های شناخته‌شده و برنامه‌های آینده، فایل TODO را ببینید.

مسیرهایی که ممکن است حاوی افزونه‌های خارجی dool_*.py باشند:

~/.dool/
(path of binary)/plugins/
/usr/share/dool/
/usr/local/share/dool/

برنامهٔ Dool آرگومان‌های اضافی خط فرمان را از متغیر محیطی DOOL_OPTS می‌خواند. می‌توانید از این متغیر برای پیکربندی رفتار پیش‌فرض Dool استفاده کنید؛ به عنوان نمونه اگر ترمینالی با قلم سیاه روی پس‌زمینهٔ سفید (black-on-white) دارید:

export DOOL_OPTS="--bw --noupdate"

سایر افزونه‌های داخلی یا خارجی نیز متغیرهای محیطی ویژهٔ خود را برای اثرگذاری بر رفتارشان دارند؛ مانند:

DOOL_NTPSERVER
DOOL_MYSQL
DOOL_MYSQL_HOST
DOOL_MYSQL_PORT
DOOL_MYSQL_SOCKET
DOOL_MYSQL_USER
DOOL_MYSQL_PWD
DOOL_SNMPSERVER
DOOL_SNMPCOMMUNITY
DOOL_SQUID_OPTS
DOOL_TIMEFMT

htop(1), ifstat(1), iftop(8), iostat(1), mpstat(1), netstat(8), nfsstat(8), perf(1), powertop(1), rtacct(8), top(1), vmstat(8), xosview(1)

lslk(8), lsof(8), ltrace(1), pidstat(1), pmap(1), ps(1), pstack(1), strace(1)

ldd(1), file(1), nm(1), objdump(1), readelf(1)

free(1), memusage, memusagestat, ps_mem(1), slabtop(1), smem(8)

acct(2), dump-acct(8), dump-utmp(8), lastcomm(1), sa(8)

dmidecode(8), ifinfo(1), lsdev(1), lshal(1), lshw(1), lsmod(8), lspci(8), lsusb(8), numactl(8), smartctl(8), turbostat(8), x86info(1)

mailstats(8), qshape(1)
xdpyinfo(1), xrestop(1)
collectl(1), proc(5), procinfo(8)

Dool توسط Scott Baker scott@perturb.org[2] نگهداری می‌شود

صفحهٔ خانگی در https://github.com/scottchiefbaker/dool

dstat در ابتدا توسط Dag Wieers dag@wieers.com[1] نوشته شده است

صفحهٔ خانگی در http://dag.wieers.com/home-made/dstat

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

Scott Baker <scott@perturb.org>

نویسنده.

1.
dag@wieers.com
mailto:dag@wieers.com
2.
scott@perturb.org
mailto:scott@perturb.org
3.
apollock@debian.org
mailto:apollock@debian.org
October 2024   1.3.0