.TH IOPING "1" "Oct 2014" "" "دستورات کاربر" .SH "نام (NAME)" ioping \- ابزار ساده پایش زمان تاخیر ورودی/خروجی دیسک .SH "خلاصه دستور (SYNOPSIS)" .SY ioping .OP \-ABCDJLNRWGYykq .OP \-a count .OP \-b count .OP \-c count .OP \-e seed .OP \-i interval .OP \-l speed .OP \-r rate .OP \-t time .OP \-T time .OP \-s size .OP \-S wsize .OP \-o offset .OP \-w deadline .OP \-p period .OP \-P period .OP \-I [format] .IR directory | file | device .br .SY ioping .B -h | .B -v .br .SH "توضیحات (DESCRIPTION)" این ابزار الگوهای مختلف ورودی/خروجی (I/O) تولید می‌کند و به شما امکان می‌دهد سرعت و زمان تاخیر ورودی/خروجی را به‌صورت بلادرنگ پایش کنید. .SH "گزینه‌ها (OPTIONS)" .TP \fB\-a\fR, \fB\-warmup\fR \fIcount\fR تعداد \fIcount\fR درخواست اول را در آمار نادیده می‌گیرد؛ مقدار پیش‌فرض 1 است. نخستین درخواست معمولاً به دلیل ویژگی‌های مدیریت مصرف انرژی بسیار کندتر است. .TP \fB\-b\fR, \fB\-burst\fR \fIcount\fR ارسال مجموعه‌ای شامل \fIcount\fR درخواست بدون تاخیر؛ مقدار پیش‌فرض \fB0\fR است. ویژگی‌های تهاجمی صرفه‌جویی در مصرف انرژی، درخواست‌ها را حتی پس از تاخیری کوتاه کند می‌کنند. .TP \fB\-c\fR, \fB\-count\fR \fIcount\fR توقف پس از \fIcount\fR درخواست؛ مقدار پیش‌فرض \fB0\fR (نامحدود) است. .TP \fB\-e\fR, \fB\-entropy\fR \fIseed\fR تنظیم دانه (seed) برای مولد اعداد تصادفی؛ مقدار پیش‌فرض \fB0\fR (تصادفی) است. .TP \fB\-i\fR, \fB\-interval\fR \fItime\fR تنظیم بازه زمانی (\fItime\fR) میان درخواست‌ها؛ مقدار پیش‌فرض \fB1s\fR (یک ثانیه) است. .TP \fB\-l\fR, \fB\-speed-limit\fR \fIsize\fR تعیین محدودیت سرعت بر حسب \fIsize\fR در هر ثانیه. بازه زمانی را به اندازه درخواست تقسیم بر سرعت افزایش می‌دهد. .TP \fB\-r\fR, \fB\-rate-limit\fR \fIcount\fR تعیین محدودیت نرخ بر حسب \fIcount\fR در هر ثانیه. بازه زمانی را به ۱ تقسیم بر نرخ افزایش می‌دهد. .TP \fB\-t\fR, \fB\-min\-time\fR \fItime\fR حداقل زمان معتبر برای درخواست (\fB0us\fR). درخواست‌های بسیار سریع در آمار نادیده گرفته می‌شوند. .TP \fB\-T\fR, \fB\-max\-time\fR \fItime\fR حداکثر زمان معتبر برای درخواست. درخواست‌های بسیار کند در آمار نادیده گرفته می‌شوند. .TP \fB\-s\fR, \fB\-size\fR \fIsize\fR اندازه درخواست؛ مقدار پیش‌فرض \fB4k\fR است. .TP \fB\-S\fR, \fB\-work\-size\fR \fIsize\fR اندازه مجموعه کاری (\fB1m\fR برای دایرکتوری، کل اندازه برای فایل یا دستگاه). .TP \fB\-o\fR, \fB\-work\-offset\fR \fIsize\fR آفست شروع در فایل یا دستگاه (پیش‌فرض 0). .TP \fB\-w\fR, \fB\-work\-time\fR \fItime\fR توقف پس از گذشت زمان \fItime\fR؛ مقدار پیش‌فرض \fB0\fR (نامحدود) است. .TP \fB\-p\fR, \fB\-print\-count\fR \fIcount\fR چاپ آمار خام به ازای هر \fIcount\fR درخواست (قالب آن در ادامه آمده است). .TP \fB\-P\fR, \fB\-print\-interval\fR \fItime\fR چاپ آمار خام در هر بازه زمانی \fItime\fR. .TP \fB\-A\fR, \fB\-async\fR استفاده از ورودی/خروجی ناهمگام (فراخوان‌های سیستمی مانند \fBio_setup\fR(2)، \fBio_submit\fR(2) و غیره). .TP \fB\-B\fR, \fB\-batch\fR حالت دسته‌ای (Batch). جلوگیری از پیام‌های اضافی و چاپ آمار نهایی در قالب خام. .TP \fB\-C\fR, \fB\-cached\fR استفاده از ورودی/خروجی کش‌شده. از بی‌اعتبارسازی حافظه موقت (کش) از طریق \fBposix_fadvise\fR(2) پیش از خواندن و \fBfdatasync\fR(2) پس از هر نوشتن جلوگیری می‌کند. .TP \fB\-D\fR, \fB\-direct\fR استفاده از ورودی/خروجی مستقیم (به \fBO_DIRECT\fR در \fBopen\fR(2) مراجعه کنید). .TP \fB\-I\fR, \fB\-time\fR \fI[format]\fR چاپ زمان جاری برای هر درخواست. آرگومان اختیاری قالب زمان را با نشانه‌گذاری \fBstrftime\fR(3) مشخص می‌کند؛ مقدار پیش‌فرض "%b %d %T" (مانند Jan 01 00:00:00) است. .TP \fB\-J\fR, \fB\-json\fR چاپ خروجی در قالب JSON. .TP \fB\-L\fR, \fB\-linear\fR استفاده از عملیات ترتیبی به‌جای تصادفی. این گزینه اندازه پیش‌فرض درخواست را نیز روی \fB256k\fR تنظیم می‌کند (مشابه \fB\-size 256k\fR). .TP \fB\-N\fR, \fB\-nowait\fR تنظیم RWF_NOWAIT روی ورودی/خروجی، که به هسته اعلام می‌کند در صورت عدم امکان اجرای فوری درخواست، منتظر نماند (به \fBRWF_NOWAIT\fR در \fBpreadv2\fR(2) مراجعه کنید). .TP \fB\-R\fR, \fB\-rapid\fR آزمون نرخ جست‌وجوی دیسک، یا آزمون پهنای باند در صورت استفاده هم‌زمان با \fB\-linear\fR. .PP این گزینه نمایش خروجی خوانا برای انسان را برای هر درخواست غیرفعال می‌کند (مشابه \fB\-quiet\fR)، فاصله پیش‌فرض را روی صفر تنظیم می‌کند (\fB\-interval 0\fR)، سنجش را پس از ۳ ثانیه متوقف می‌سازد (\fB\-work\-time 3\fR) و اندازه پیش‌فرض مجموعه کاری را به 64m افزایش می‌دهد (\fB\-work\-size 64m\fR). در صورتی که دیسک دارای حافظه کش سخت‌افزاری بسیار بزرگ باشد، اندازه مجموعه کاری (\fB\-work\-size\fR) باید به همان نسبت افزایش یابد. .TP \fB\-W\fR, \fB\-write\fR استفاده از عملیات نوشتن به‌جای خواندن. برای فایل موقت در مقصد دایرکتوری ایمن است. ورودی/خروجی نوشتن در سیستم‌هایی که خواندن بدون کش پشتیبانی نمی‌شود یا در سطوحی کش می‌شود، نتایج مطمئن‌تری می‌دهد. .IP ممکن است برای فایل یا دستگاه \fB*خطرناک*\fR باشد: زیرا داده‌های شما را بازنویسی و نابود می‌کند. در این حالت باید سه بار تکرار شود (\fB\-WWW\fR). .TP \fB\-G\fR, \fB\-read\-write\fR جابه‌جایی متناوب میان درخواست‌های خواندن و نوشتن. .TP \fB\-Y\fR, \fB\-sync\fR استفاده از ورودی/خروجی همگام (به \fBO_SYNC\fR در \fBopen\fR(2) مراجعه کنید). .TP \fB\-y\fR, \fB\-dsync\fR استفاده از ورودی/خروجی همگام داده (به \fBO_DSYNC\fR در \fBopen\fR(2) مراجعه کنید). .TP \fB\-k\fR, \fB\-keep\fR نگه‌داری و استفاده مجدد از فایل کاری موقت "ioping.tmp" (تنها برای مقصد دایرکتوری). .TP \fB\-q\fR, \fB\-quiet\fR عدم نمایش دوره‌ای خروجی خوانا برای انسان. .TP \fB\-h\fR, \fB\-help\fR نمایش پیام راهنما و خروج. .TP \fB\-v\fR, \fB\-version\fR نمایش نسخه و خروج. .SS "پسوندهای آرگومان‌ها (Argument suffixes)" برای گزینه‌هایی که آرگومان زمانی می‌پذیرند (\fB\-interval\fR، \fB\-print\-interval\fR و \fB\-work\-time\fR)، مقدار پیش‌فرض بر حسب ثانیه است، مگر اینکه یکی از پسوندهای زیر مشخص شود (بدون حساسیت به بزرگی و کوچکی حروف): .TP .BR ns ,\ nsec نانوثانیه (یک میلیاردم ثانیه، 1 / 1 000 000 000) .TP .BR us ,\ usec میکروثانیه (یک میلیونم ثانیه، 1 / 1 000 000) .TP .BR ms ,\ msec میلی‌ثانیه (یک هزارم ثانیه، 1 / 1 000) .TP .BR s ,\ sec ثانیه .TP .BR m ,\ min دقیقه .TP .BR h ,\ hour ساعت .PP برای گزینه‌هایی که آرگومان اندازه می‌پذیرند (\fB\-size\fR، \fB\-speed\-limit\fR، \fB\-work\-size\fR و \fB\-work\-offset\fR)، مقدار پیش‌فرض بر حسب بایت است، مگر اینکه یکی از پسوندهای زیر مشخص شود (بدون حساسیت به بزرگی و کوچکی حروف): .TP .B sector سکتورهای دیسک (اندازه هر سکتور همواره ۵۱۲ بایت است). .TP .BR KiB ,\ k ,\ kb کیلوبایت (1 024 بایت) .TP .B page صفحه‌های حافظه (اندازه هر صفحه همواره 4KiB است). .TP .BR MiB ,\ m ,\ mb مگابایت (1 048 576 بایت) .TP .BR GiB ,\ g ,\ gb گیگابایت (1 073 741 824 بایت) .TP .BR TiB ,\ t ,\ tb ترابایت (1 099 511 627 776 بایت) .PP برای گزینه‌هایی که آرگومان عددی می‌پذیرند (\fB\-count\fR و \fB\-print\-count\fR)، می‌توانید به‌صورت اختیاری یکی از پسوندهای زیر را مشخص کنید (بدون حساسیت به بزرگی و کوچکی حروف): .TP .B k کیلو (هزار، 1 000) .TP .B m مگا (میلیون، 1 000 000) .TP .B g گیگا (میلیارد، 1 000 000 000) .TP .B t ترا (تریلیون، 1 000 000 000 000) .SH "وضعیت خروج (EXIT STATUS)" در صورت موفقیت مقدار \fB0\fR را برمی‌گرداند. کدهای خطای زیر تعریف شده‌اند: .TP .B 1 استفاده نادرست از دستور (خطا در آرگومان‌ها). .TP .B 2 خطا در مرحله آماده‌سازی. .TP .B 3 خطا در زمان اجرا. .SH "آمار خام (RAW STATISTICS)" .PP .B ioping \-print\-count 100 \-count 200 \-interval 0 \-quiet . .PP .nf 99 10970974 9024 36961531 90437 110818 358872 30756 100 12516420 100 9573265 10446 42785821 86849 95733 154609 10548 100 10649035 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) .fi .PP (1) تعداد درخواست‌ها در آمار .br (2) زمان اجرا (نانوثانیه) .br (3) درخواست در هر ثانیه (iops) .br (4) سرعت انتقال (بایت در ثانیه) .br (5) حداقل زمان درخواست (نانوثانیه) .br (6) میانگین زمان درخواست (نانوثانیه) .br (7) حداکثر زمان درخواست (نانوثانیه) .br (8) انحراف معیار زمان درخواست (نانوثانیه) .br (9) کل درخواست‌ها (شامل دوره گرم‌کردن اولیه، بسیار کند یا بسیار سریع) .br (10) کل زمان اجرا (نانوثانیه) .SH "خروجی JSON (JSON OUTPUT)" با استفاده از گزینه .BR \-J | \-\-json دستور ioping آرایه‌ای از اشیای JSON را چاپ می‌کند: .PP .nf [ \&... { // timestamps "timestamp": (unix time in seconds as float), "localtime": (local time ISO 8601), // io target "target": { "path": (target path), "fstype": (filesystem name), "device": (device name), "device_size": (device size in bytes) }, // io request "io": { "request": (request index), "operation": (request type: "read" | "write"), "size": (request size in bytes), "time": (io time in ns), "ignored": (ignored in statistics: true | false) }, // statistics "stat": { "count": (nr requests), "size": (total io size in bytes), "time": (total io time in ns), "iops": (avg iops), "bps": (avg rate), "min": (min io time in ns), "avg": (avg io time in ns), "max": (max io time in ns), "mdev": (standard deviation in ns) }, // load statistics "load": { "count": (nr requests), "size": (total io size in bytes), "time": (total real time in ns), "iops": (avg iops), "bps": (avg rate) } }, \&... ] .fi .SH "مثال‌ها (EXAMPLES)" .TP .B ioping . نمایش زمان تاخیر ورودی/خروجی دیسک با مقادیر پیش‌فرض و در دایرکتوری جاری تا زمان متوقف شدن توسط کاربر. این دستور یک فایل کاری موقت (لینک‌نشده/مخفی) آماده می‌کند و بخش‌های تصادفی از آن را با استفاده از درخواست‌های خواندن غیرکش‌شده می‌خواند. .TP .B ioping \-c 10 \-s 1M /tmp سنجش زمان تاخیر در .B /tmp با استفاده از ۱۰ درخواست ۱ مگابایتی. .TP .B ioping \-R /dev/sda سنجش نرخ جست‌وجوی (seek rate) دیسک. .TP .B ioping \-RL /dev/sda سنجش سرعت ترتیبی دیسک. .TP .B ioping \-RLB . | awk '{print $4}' دریافت سرعت ترتیبی دیسک بر حسب بایت در ثانیه. .TP .B ioping \-J . | jq \-r \-\-stream 'fromstream(1|truncate_stream(inputs)) | [.localtime, .io.time/1000000] | @tsv' استخراج زمان محلی و زمان ورودی/خروجی بر حسب میلی‌ثانیه از خروجی JSON. .SH "همچنین ببینید (SEE ALSO)" .BR iostat (1), .BR dd (1), .BR fio (1), .BR stress (1), .BR stress\-ng (1), .BR dbench (1), .BR sysbench (1), .BR fsstress (1), .BR xfstests (1), .BR hdparm (8), .BR badblocks (8) .SH "صفحه اصلی (HOMEPAGE)" .UR https://github.com/koct9i/ioping .UE .SH "نویسندگان (AUTHORS)" این برنامه توسط Konstantin Khlebnikov نوشته شده است .MT koct9i@gmail.com .ME . .br صفحه راهنما توسط Kir Kolyshkin نوشته شده است .MT kir@openvz.org .ME .