IOPING(1) دستورات کاربر IOPING(1) نام (NAME) ioping - ابزار ساده پایش زمان تاخیر ورودی/خروجی دیسک خلاصه دستور (SYNOPSIS) ioping [-ABCDJLNRWGYykq] [-a count] [-b count] [-c count] [-e seed] [-i interval] [-l speed] [-r rate] [-t time] [-T time] [-s size] [-S wsize] [-o offset] [-w deadline] [-p period] [-P period] [-I [format]] directory|file|device ioping -h | -v توضیحات (DESCRIPTION) این ابزار الگوهای مختلف ورودی/خروجی (I/O) تولید می‌کند و به شما امکان می‌دهد سرعت و زمان تاخیر ورودی/خروجی را به‌صورت بلادرنگ پایش کنید. گزینه‌ها (OPTIONS) -a, -warmup count تعداد count درخواست اول را در آمار نادیده می‌گیرد؛ مقدار پیش‌فرض 1 است. نخستین درخواست معمولاً به دلیل ویژگی‌های مدیریت مصرف انرژی بسیار کندتر است. -b, -burst count ارسال مجموعه‌ای شامل count درخواست بدون تاخیر؛ مقدار پیش‌فرض 0 است. ویژگی‌های تهاجمی صرفه‌جویی در مصرف انرژی، درخواست‌ها را حتی پس از تاخیری کوتاه کند می‌کنند. -c, -count count توقف پس از count درخواست؛ مقدار پیش‌فرض 0 (نامحدود) است. -e, -entropy seed تنظیم دانه (seed) برای مولد اعداد تصادفی؛ مقدار پیش‌فرض 0 (تصادفی) است. -i, -interval time تنظیم بازه زمانی (time) میان درخواست‌ها؛ مقدار پیش‌فرض 1s (یک ثانیه) است. -l, -speed-limit size تعیین محدودیت سرعت بر حسب size در هر ثانیه. بازه زمانی را به اندازه درخواست تقسیم بر سرعت افزایش می‌دهد. -r, -rate-limit count تعیین محدودیت نرخ بر حسب count در هر ثانیه. بازه زمانی را به ۱ تقسیم بر نرخ افزایش می‌دهد. -t, -min-time time حداقل زمان معتبر برای درخواست (0us). درخواست‌های بسیار سریع در آمار نادیده گرفته می‌شوند. -T, -max-time time حداکثر زمان معتبر برای درخواست. درخواست‌های بسیار کند در آمار نادیده گرفته می‌شوند. -s, -size size اندازه درخواست؛ مقدار پیش‌فرض 4k است. -S, -work-size size اندازه مجموعه کاری (1m برای دایرکتوری، کل اندازه برای فایل یا دستگاه). -o, -work-offset size آفست شروع در فایل یا دستگاه (پیش‌فرض 0). -w, -work-time time توقف پس از گذشت زمان time؛ مقدار پیش‌فرض 0 (نامحدود) است. -p, -print-count count چاپ آمار خام به ازای هر count درخواست (قالب آن در ادامه آمده است). -P, -print-interval time چاپ آمار خام در هر بازه زمانی time. -A, -async استفاده از ورودی/خروجی ناهمگام (فراخوان‌های سیستمی مانند io_setup(2)، io_submit(2) و غیره). -B, -batch حالت دسته‌ای (Batch). جلوگیری از پیام‌های اضافی و چاپ آمار نهایی در قالب خام. -C, -cached استفاده از ورودی/خروجی کش‌شده. از بی‌اعتبارسازی حافظه موقت (کش) از طریق posix_fadvise(2) پیش از خواندن و fdatasync(2) پس از هر نوشتن جلوگیری می‌کند. -D, -direct استفاده از ورودی/خروجی مستقیم (به O_DIRECT در open(2) مراجعه کنید). -I, -time [format] چاپ زمان جاری برای هر درخواست. آرگومان اختیاری قالب زمان را با نشانه‌گذاری strftime(3) مشخص می‌کند؛ مقدار پیش‌فرض "%b %d %T" (مانند Jan 01 00:00:00) است. -J, -json چاپ خروجی در قالب JSON. -L, -linear استفاده از عملیات ترتیبی به‌جای تصادفی. این گزینه اندازه پیش‌فرض درخواست را نیز روی 256k تنظیم می‌کند (مشابه -size 256k). -N, -nowait تنظیم RWF_NOWAIT روی ورودی/خروجی، که به هسته اعلام می‌کند در صورت عدم امکان اجرای فوری درخواست، منتظر نماند (به RWF_NOWAIT در preadv2(2) مراجعه کنید). -R, -rapid آزمون نرخ جست‌وجوی دیسک، یا آزمون پهنای باند در صورت استفاده هم‌زمان با -linear. این گزینه نمایش خروجی خوانا برای انسان را برای هر درخواست غیرفعال می‌کند (مشابه -quiet)، فاصله پیش‌فرض را روی صفر تنظیم می‌کند (-interval 0)، سنجش را پس از ۳ ثانیه متوقف می‌سازد (-work-time 3) و اندازه پیش‌فرض مجموعه کاری را به 64m افزایش می‌دهد (-work-size 64m). در صورتی که دیسک دارای حافظه کش سخت‌افزاری بسیار بزرگ باشد، اندازه مجموعه کاری (-work-size) باید به همان نسبت افزایش یابد. -W, -write استفاده از عملیات نوشتن به‌جای خواندن. برای فایل موقت در مقصد دایرکتوری ایمن است. ورودی/خروجی نوشتن در سیستم‌هایی که خواندن بدون کش پشتیبانی نمی‌شود یا در سطوحی کش می‌شود، نتایج مطمئن‌تری می‌دهد. ممکن است برای فایل یا دستگاه *خطرناک* باشد: زیرا داده‌های شما را بازنویسی و نابود می‌کند. در این حالت باید سه بار تکرار شود (-WWW). -G, -read-write جابه‌جایی متناوب میان درخواست‌های خواندن و نوشتن. -Y, -sync استفاده از ورودی/خروجی همگام (به O_SYNC در open(2) مراجعه کنید). -y, -dsync استفاده از ورودی/خروجی همگام داده (به O_DSYNC در open(2) مراجعه کنید). -k, -keep نگه‌داری و استفاده مجدد از فایل کاری موقت "ioping.tmp" (تنها برای مقصد دایرکتوری). -q, -quiet عدم نمایش دوره‌ای خروجی خوانا برای انسان. -h, -help نمایش پیام راهنما و خروج. -v, -version نمایش نسخه و خروج. پسوندهای آرگومان‌ها (Argument suffixes) برای گزینه‌هایی که آرگومان زمانی می‌پذیرند (-interval، -print-interval و -work-time)، مقدار پیش‌فرض بر حسب ثانیه است، مگر اینکه یکی از پسوندهای زیر مشخص شود (بدون حساسیت به بزرگی و کوچکی حروف): ns, nsec نانوثانیه (یک میلیاردم ثانیه، 1 / 1 000 000 000) us, usec میکروثانیه (یک میلیونم ثانیه، 1 / 1 000 000) ms, msec میلی‌ثانیه (یک هزارم ثانیه، 1 / 1 000) s, sec ثانیه m, min دقیقه h, hour ساعت برای گزینه‌هایی که آرگومان اندازه می‌پذیرند (-size، -speed-limit، -work-size و -work-offset)، مقدار پیش‌فرض بر حسب بایت است، مگر اینکه یکی از پسوندهای زیر مشخص شود (بدون حساسیت به بزرگی و کوچکی حروف): sector سکتورهای دیسک (اندازه هر سکتور همواره ۵۱۲ بایت است). KiB, k, kb کیلوبایت (1 024 بایت) page صفحه‌های حافظه (اندازه هر صفحه همواره 4KiB است). MiB, m, mb مگابایت (1 048 576 بایت) GiB, g, gb گیگابایت (1 073 741 824 بایت) TiB, t, tb ترابایت (1 099 511 627 776 بایت) برای گزینه‌هایی که آرگومان عددی می‌پذیرند (-count و -print-count)، می‌توانید به‌صورت اختیاری یکی از پسوندهای زیر را مشخص کنید (بدون حساسیت به بزرگی و کوچکی حروف): k کیلو (هزار، 1 000) m مگا (میلیون، 1 000 000) g گیگا (میلیارد، 1 000 000 000) t ترا (تریلیون، 1 000 000 000 000) وضعیت خروج (EXIT STATUS) در صورت موفقیت مقدار 0 را برمی‌گرداند. کدهای خطای زیر تعریف شده‌اند: 1 استفاده نادرست از دستور (خطا در آرگومان‌ها). 2 خطا در مرحله آماده‌سازی. 3 خطا در زمان اجرا. آمار خام (RAW STATISTICS) ioping -print-count 100 -count 200 -interval 0 -quiet . 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) (1) تعداد درخواست‌ها در آمار (2) زمان اجرا (نانوثانیه) (3) درخواست در هر ثانیه (iops) (4) سرعت انتقال (بایت در ثانیه) (5) حداقل زمان درخواست (نانوثانیه) (6) میانگین زمان درخواست (نانوثانیه) (7) حداکثر زمان درخواست (نانوثانیه) (8) انحراف معیار زمان درخواست (نانوثانیه) (9) کل درخواست‌ها (شامل دوره گرم‌کردن اولیه، بسیار کند یا بسیار سریع) (10) کل زمان اجرا (نانوثانیه) خروجی JSON (JSON OUTPUT) با استفاده از گزینه -J|--json دستور ioping آرایه‌ای از اشیای JSON را چاپ می‌کند: [ ... { // 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) } }, ... ] مثال‌ها (EXAMPLES) ioping . نمایش زمان تاخیر ورودی/خروجی دیسک با مقادیر پیش‌فرض و در دایرکتوری جاری تا زمان متوقف شدن توسط کاربر. این دستور یک فایل کاری موقت (لینک‌نشده/مخفی) آماده می‌کند و بخش‌های تصادفی از آن را با استفاده از درخواست‌های خواندن غیرکش‌شده می‌خواند. ioping -c 10 -s 1M /tmp سنجش زمان تاخیر در /tmp با استفاده از ۱۰ درخواست ۱ مگابایتی. ioping -R /dev/sda سنجش نرخ جست‌وجوی (seek rate) دیسک. ioping -RL /dev/sda سنجش سرعت ترتیبی دیسک. ioping -RLB . | awk '{print $4}' دریافت سرعت ترتیبی دیسک بر حسب بایت در ثانیه. ioping -J . | jq -r --stream 'fromstream(1|truncate_stream(inputs)) | [.localtime, .io.time/1000000] | @tsv' استخراج زمان محلی و زمان ورودی/خروجی بر حسب میلی‌ثانیه از خروجی JSON. همچنین ببینید (SEE ALSO) iostat(1), dd(1), fio(1), stress(1), stress-ng(1), dbench(1), sysbench(1), fsstress(1), xfstests(1), hdparm(8), badblocks(8) صفحه اصلی (HOMEPAGE) نویسندگان (AUTHORS) این برنامه توسط Konstantin Khlebnikov نوشته شده است . صفحه راهنما توسط Kir Kolyshkin نوشته شده است . Oct 2014 IOPING(1)