| TAPESTAT(1) | Linux User's Manual | TAPESTAT(1) |
نام (NAME)
tapestat - گزارش آمار درایوهای نوار
خلاصه دستور (SYNOPSIS)
tapestat [ -k | -m ] [ -t ] [ -U ] [ -V ] [ -y ] [ -z ] [ --human ] [ -o JSON ] [ interval [ count ] ]
توضیحات (DESCRIPTION)
دستور tapestat برای نظارت بر فعالیت درایوهای نوار متصل به سیستم به کار میرود.
نخستین گزارش تولیدشده توسط دستور tapestat، آماری مربوط به زمان سپریشده پس از راهاندازی (boot) سیستم را ارائه میدهد، مگر اینکه از گزینهٔ -y استفاده شود که در این صورت این گزارش اول نادیده گرفته میشود. هر گزارش بعدی، بازهٔ زمانی از گزارش پیشین تا کنون را پوشش میدهد.
پارامتر interval مدت زمان برحسب ثانیه را میان هر گزارش مشخص میکند. پارامتر count میتواند همراه با پارامتر interval تعیین شود. اگر پارامتر count مشخص گردد، مقدار count تعداد گزارشهای تولیدشده در فواصل زمانی interval ثانیه را مشخص میکند. اگر پارامتر interval بدون پارامتر count تعیین شود، دستور tapestat گزارشها را بهصورت پیوسته تولید میکند.
گزارش (REPORT)
گزارش tapestat آماری را برای هر درایو نوار متصل به سیستم ارائه میدهد. دادههای زیر نمایش داده میشوند:
- r/s
- تعداد درخواستهای خواندن صادرشده بهصورت میانگین در ثانیه در طول بازه.
- w/s
- تعداد درخواستهای نوشتن صادرشده بهصورت میانگین در ثانیه در طول بازه.
- kB_read/s | MB_read/s
- میزان دادههای خواندهشده برحسب کیبیبایت (بهطور پیشفرض یا در صورت استفاده از گزینهٔ -k) یا مبیبایت (در صورت استفاده از گزینهٔ -m) در هر ثانیه میانگینگیریشده در طول بازه.
- kB_wrtn/s | MB_wrtn/s
- میزان دادههای نوشتهشده برحسب کیبیبایت (بهطور پیشفرض یا در صورت استفاده از گزینهٔ -k) یا مبیبایت (در صورت استفاده از گزینهٔ -m) در هر ثانیه میانگینگیریشده در طول بازه.
- %Rd
- درصد انتظار خواندن - درصد زمانی در طول بازه که صرف انتظار برای تکمیل درخواستهای خواندن شده است. این زمان از هنگامی که درخواست به لایه میانی SCSI (mid-layer) ارسال میشود تا زمانی که تکمیل آن گزارش شود سنجیده میشود.
- %Wr
- درصد انتظار نوشتن - درصد زمانی در طول بازه که صرف انتظار برای تکمیل درخواستهای نوشتن شده است. این زمان از هنگامی که درخواست به لایه میانی SCSI ارسال میشود تا زمانی که تکمیل آن گزارش شود سنجیده میشود.
- %Oa
- درصد انتظار کلی - درصد زمانی در طول بازه که صرف انتظار برای تکمیل هرگونه درخواست I/O (خواندن، نوشتن و سایر موارد) شده است.
- Rs/s
- تعداد I/Oها بهصورت تعداد در هر ثانیه میانگینگیریشده در طول بازه، که در آنها با یک مقدار باقیمانده (residual value) غیرصفر مواجه شده است.
- Ot/s
- تعداد I/Oها بهصورت تعداد در هر ثانیه میانگینگیریشده در طول بازه، که در دستهٔ «other» (دیگر) قرار گرفتهاند. I/Oهای دیگر شامل فراخوانیهای ioctl انجامشده روی راهانداز نوار و عملیات ضمنی انجامشده توسط راهانداز نوار مانند بازپیچی هنگام بستن (rewind on close برای دستگاههایی که این قابلیت را دارند) میشود. این معیار شامل I/Oهای انجامشده با روشهای خارج از راهانداز نوار (مانند ioctlهای sg) نمیشود.
گزینهها (OPTIONS)
- --human
- نمایش اندازهها در قالبی خوانا برای انسان (مانند 1.0k، 1.2M و غیره). واحدهای نمایشدادهشده با این گزینه جایگزین هرگونه واحد پیشفرض دیگر (مانند کیبیبایت، سکتور و...) در معیارها میشوند.
- -k
- نمایش میزان دادههای نوشتهشده یا خواندهشده برحسب کیبیبایت در ثانیه بهجای مبیبایت. این گزینه با -m ناسازگار است.
- -m
- نمایش میزان دادههای نوشتهشده یا خواندهشده برحسب مبیبایت در ثانیه بهجای کیبیبایت. این گزینه با -k ناسازگار است.
- -o JSON
- نمایش آمارها در قالب JSON (نشانهگذاری شیء جاوااسکریپت). ترتیب فیلدهای خروجی JSON تعریفنشده است و ممکن است در آینده فیلدهای جدیدی اضافه شوند.
- -t
- نمایش برچسبهای زمانی. قالب برچسب زمانی ممکن است به مقدار متغیر محیطی S_TIME_FORMAT (به بخش محیط مراجعه کنید) و استفاده شدن یا نشدن از گزینهٔ -U بستگی داشته باشد.
- -U
- نمایش برچسب زمانی (UTC - ساعت هماهنگ جهانی) برحسب ثانیه از مبدأ زمان (epoch).
- -V
- چاپ نسخه و خروج.
- -y
- صرفنظر کردن از آمار اولیه که مقادیر را از زمان راهاندازی (boot) نشان میدهد.
- -z
- دستور tapestat را ملزم میکند خروجی نوارگردانهایی که در طول دورهٔ نمونهبرداری هیچ فعالیتی نداشتهاند را حذف کند.
ملاحظات (CONSIDERATIONS)
این امکان وجود دارد که مقدار درصدی (خواندن، نوشتن یا غیره) بیشتر از ۱۰۰ درصد باشد (دستور tapestat هرگز مقدار درصدی بیش از ۹۹۹ را نشان نخواهد داد). اگر بازپیچی (rewind) یک نوار ۴۰ ثانیه طول بکشد در حالی که زمان بازه ۵ ثانیه است، مقدار %Oa در بازههای پیش از اتمام بازپیچی ۰ نشان داده میشود و سپس هنگام تکمیل بازپیچی، حدود ۸۰۰ درصد نمایش داده خواهد شد.
مقادیر مشابهی برای %Rd و %Wr مشاهده خواهد شد اگر یک درایو نوار، خواندن یا نوشتن را متوقف کند و سپس دوباره از سر بگیرد (یعنی جریان پیوسته داده متوقف شده باشد). در چنین حالتی ممکن است مشاهده کنید r/s یا w/s به صفر افت میکند و هنگامی که خواندن یا نوشتن ادامه مییابد مقدار %Rd/%Wr میتواند بالاتر از ۱۰۰ باشد (بسته به اینکه شروع مجدد نوشتن یا خواندن چقدر طول بکشد). این مسئله تنها در صورتی نگرانکننده است که مکرراً رخ دهد، چرا که ممکن است باعث فرسایش نوار شود و بر زمان پشتیبانگیری اثر منفی بگذارد.
برای درایوهای نوار سریع ممکن است درصد زمانهای انتظار پایینی مشاهده کنید. این نشاندهندهٔ اشکال در درایو نوار نیست. برای درایوهای نوار کندتر (مانند یک درایو نسل قدیمی DDS)، سرعت نوار (و درایو نوار) بسیار کندتر از I/O سیستمفایل است و درصد زمانهای انتظار احتمالاً بالاتر خواهد بود. برای درایوهای سریعتر (مانند LTO)، درصد زمانهای انتظار احتمالاً کمتر است چرا که برنامهٔ خواننده یا نویسنده روی نوار به دلیل توان عملیاتی بالاتر، I/Oهای بسیار بیشتری روی سیستمفایل انجام میدهد.
اگرچه آمار نوار در هسته با استفاده از متغیرهای اتمیک پیادهسازی شده است، اما نمیتوان آنها را بهصورت دستهجمعی و به شکل اتمیک خواند. تمام مقادیر آماری از فایلهای متفاوتی زیر مسیر /sys خوانده میشوند، به همین دلیل ممکن است در حین خواندن فایلهای مختلفِ مربوط به یک درایو نوار، مواردی از اتمام I/O رخ دهد. این وضعیت ممکن است منجر به مجموعهای از آمار برای یک دستگاه شود که شامل مقادیری پیش از اتمام I/O و مقادیری پس از آن باشد.
این دستور در هنگام محاسبهٔ آمار بر ثانیه از گرد کردن به پایین (rounding down) استفاده میکند. برای نمونه، اگر از dd برای کپی کردن یک نوار به نواری دیگر استفاده میکنید و tapestat را با بازهٔ زمانی ۵ ثانیه اجرا کردهاید و در طول بازه ۳۲۱۰ نوشتن و ۳۲۰۹ خواندن رخ داده باشد، مقدار w/s برابر ۶۴۲ و r/s برابر ۶۴۱ (۶۴۱٫۸ گردشده به پایین) نمایش داده میشود. در چنین حالتی اگر یک بایگانی tar در حال کپی باشد (با اندازهٔ بلوک 10k)، اختلافی معادل ۲ بین kB_read/s و kB_wrtn/s مشاهده خواهید کرد (یک I/O با اندازهٔ 10k تقسیم بر طول دورهٔ بازهٔ ۵ ثانیهای). اگر در عوض ۳۲۱۰ نوشتن و ۳۲۱۱ خواندن وجود داشته باشد، هر دو مقدار w/s و r/s عدد ۶۴۲ را نشان میدهند اما همچنان اختلاف ۲ kB/s بین مقادیر kB_read/s و kB_wrtn/s دیده خواهد شد.
این دستور با یک بازه برحسب ثانیه مقداردهی میشود. با این وجود در داخل برنامه، بازه برای هر دستگاه بهطور مستقل ردیابی میشود و میتواند بر آمار گزارششده بر ثانیه تأثیر بگذارد. زمان ثبت هر مجموعه از آمارها همراه با همان آمار نگهداری میشود. اختلاف بین زمان فعلی و قبلی برای استفاده در محاسبات به میلیثانیه تبدیل میشود. برای درک تأثیر این موضوع بر آمارهای گزارششده، میتوان به مثالی از کپی یک بایگانی tar بین دو درایو نوار توسط dd نگاه کرد. اگر هر دو دستگاه ۲۸۹۰۰ کیبیبایت منتقلشده گزارش کنند و درایو نوار خواننده بازهٔ ۵۰۰۱ میلیثانیه و درایو نوار نویسنده بازهٔ ۵۰۰۰ میلیثانیه داشته باشد، مقادیر خروجی بهصورت 5778 kB_read/s و 5780 kB_wrtn/s محاسبه خواهند شد.
تأثیر واکشی برخی آمارها در حین اتمام I/O، گرد کردن به پایین، و تفاوتهای اندک در طول بازه بر آمار محاسبهشده باید ناچیز باشد، اما ممکن است غیرصفر باشد.
محیط (ENVIRONMENT)
دستور tapestat متغیرهای محیطی زیر را در نظر میگیرد:
- S_COLORS
- بهطور
پیشفرض در
صورت اتصال
خروجی به
ترمینال،
آمارها
رنگی نمایش
داده
میشوند. از
این متغیر
برای تغییر
تنظیمات
استفاده
کنید.
مقادیر
مجاز برای
این متغیر
عبارتند از:
never، always یا auto
(مورد اخیر
معادل
تنظیمات
پیشفرض
است).
لطفاً توجه داشته باشید که رنگ استفادهشده (قرمز، زرد یا هر رنگ دیگر) برای نمایش یک مقدار صرفاً به دلیل رنگ آن نشاندهندهٔ هیچ مشکلی نیست؛ بلکه تنها بازههای مختلف مقادیر را مشخص میکند. - S_COLORS_SGR
- رنگها و سایر مشخصههای مورد استفاده برای نمایش آمار در ترمینال را تعیین میکند. مقدار آن فهرستی از قابلیتهاست که با دونقطه (:) از هم جدا شدهاند و بهطور پیشفرض برابر است با: I=32;22:N=34;1:W=35;1:X=31;1:Z=34;22. قابلیتهای پشتیبانیشده عبارتند از:
- I=
- زیررشتهٔ SGR (گزینش بازنمایی گرافیکی) برای نام نوارها.
- N=
- زیررشتهٔ SGR برای مقادیر آماری غیرصفر.
- W= (یا M=)
- زیررشتهٔ SGR برای مقادیر درصدی در بازهٔ ۷۵٪ تا ۹۰٪ (یا در بازهٔ ۱۰٪ تا ۲۵٪ بسته به مفهوم معیار).
- X= (یا H=)
- زیررشتهٔ SGR برای مقادیر درصدی بزرگتر یا مساوی ۹۰٪ (یا کوچکتر یا مساوی ۱۰٪ بسته به مفهوم معیار).
- Z=
- زیررشتهٔ SGR برای مقادیر صفر.
- S_TIME_FORMAT
- اگر این متغیر تعریف شده و مقدار آن ISO باشد، هنگام چاپ تاریخ در سرآیند گزارش، تنظیمات محلی (locale) فعلی نادیده گرفته میشود. دستور tapestat در عوض از قالب استاندارد ISO 8601 (بهصورت YYYY-MM-DD) استفاده خواهد کرد. برچسب زمانی نمایش داده شده با گزینهٔ -t نیز با قالب ISO 8601 مطابقت خواهد داشت.
گزارش باگها (BUGS)
سیستمفایل /sys برای کارکرد tapestat باید متصل (mount) شده باشد. این دستور روی هستههایی که از sysfs پشتیبانی نمیکنند کار نخواهد کرد.
این دستور نیازمند هستهٔ لینوکس نسخهٔ 4.2 یا بالاتر است (یا قابلیتی از آمار نوار که برای هستههای قدیمیتر به عقب منتقل شده باشد).
اگرچه tapestat واحدهایی متناظر با کیلوبایت (kB)، مگابایت (MB)... را نمایش میدهد، اما در عمل از کیبیبایت (kiB)، مبیبایت (MiB)... استفاده میکند. هر کیبیبایت برابر با ۱۰۲۴ بایت، و هر مبیبایت برابر با ۱۰۲۴ کیبیبایت است.
فایلها (FILES)
/sys/class/scsi_tape/st<num>/stats/*
/proc/uptime شامل زمان فعال بودن سیستم است.
نویسندگان (AUTHORS)
نگارش
اولیه توسط
Shane M. SEYMOUR (shane.seymour <at> hpe.com)
توسعه و
اصلاح برای
sysstat توسط Sebastien Godard (sysstat
<at> orange.fr)
همچنین ببینید (SEE ALSO)
https://github.com/sysstat/sysstat
https://sysstat.github.io
| JULY 2025 | Linux |