| 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)، میتوانید بهصورت اختیاری یکی از پسوندهای زیر را مشخص کنید (بدون حساسیت به بزرگی و کوچکی حروف):
وضعیت خروج (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
نوشته شده
است
koct9i@gmail.com.
صفحه
راهنما
توسط Kir Kolyshkin
نوشته شده
است
kir@openvz.org.
| Oct 2014 |