| compsize(8) | btrfs | compsize(8) |
نام (NAME)
compsize - محاسبه نسبت فشردهسازی مجموعهای از فایلها در سیستمفایل btrfs
خلاصه دستور (SYNOPSIS)
compsize file-or-dir [ file-or-dir ... ]
توضیحات (DESCRIPTION)
compsize فهرستی از فایلها را روی یک سیستمفایل btrfs دریافت میکند (با پیمایش بازگشتی در دایرکتوریها) و نوع فشردهسازیهای بهکاررفته و نسبت فشردهسازی مؤثر را اندازه میگیرد. علاوه بر فشردهسازی، compsize اثر بازپیوندها (reflinkها مانند cp --reflink، اسنپشاتها و deduplication) و انواع مشخصی از اتلاف فضا در btrfs را نمایش میدهد.
این برنامه گزارشی مشابه زیر ارائه میدهد:
Processed 90319 files. Type Perc Disk Usage Uncompressed Referenced TOTAL 79% 1.4G 1.8G 1.9G none 100% 1.0G 1.0G 1.0G lzo 53% 446M 833M 843M
فیلدهای بالا عبارتند از:
- Type
- الگوریتم فشردهسازی.
- Perc
- میزان مصرف دیسک تقسیم بر حجم فشردهنشده (نسبت فشردهسازی).
- Disk Usage
- بلاکهای روی دیسک؛ هزینه واقعی ذخیرهسازی این فایلها روی دیسک (بدون در نظر گرفتن ملاحظات RAID).
- Uncompressed
- اکستنتهای فشردهنشده؛ فضایی که بدون فشردهسازی نیاز داشتید - شامل صرفهجویی ناشی از یکسانسازی (deduplication) و اتلاف فضا در اکستنتهای سنجاقشده (pinned).
- Referenced
- اندازه ظاهری فایلها (بدون در نظر گرفتن حفرهها یا holes)؛ فضایی که یک سیستمفایل سنتی با پشتیبانی از حفرهها و بستهبندی کارآمد دنبالهها (tail packing) یا دستور tar -S برای ذخیرهسازی این فایلها نیاز دارد.
بیایید این مورد را با یک مثال بررسی کنیم: فایلی به حجم ۱۲۸ کیلوبایت بهصورت یک اکستنت تکی A ذخیره میشود که پس از فشردهسازی به یک صفحه ۴ کیلوبایتی تبدیل شده است. سپس یک عملیات نوشتن ۳۲ کیلوبایتی در افست ۳۲ کیلوبایت دریافت میکند که آن هم به یک صفحه ۴ کیلوبایتی فشرده شده و بهعنوان اکستنت B ذخیره میشود.
اکنون فایل به این صورت دیده میشود:
+-------+-------+---------------+
extent A | used | waste | used |
+-------+-------+---------------+
extent B | used |
+-------+
اتلاف فضا (waste) درون اکستنت A تا زمانی که کل اکستنت بازنویسی نشود (برای نمونه با defrag) از بین نمیرود. در صورت فشردهسازی، هر بار که آن بخش از فایل خوانده میشود باید کل اکستنت خوانده شود، بنابراین فضای اتلافشده همچنان مورد نیاز است.
در این حالت داریم: Disk Usage: 8KB، Uncompressed: 160K، Referenced: 128K.
گزینهها (OPTIONS)
- -b / --bytes
- نمایش تعداد خام بایتها بهجای اندازههای خوانا برای انسان.
- -x / --one-file-system
- نادیده گرفتن فایلها و دایرکتوریهای موجود روی سیستمفایلهای دیگر.
سیگنالها (SIGNALS)
- USR1
- نمایش دادههای جزئی برای فایلهایی که تا این لحظه پردازش شدهاند.
هشدارها (CAVEATS)
فایلهایی که بهتازگی نوشته شدهاند ممکن است تا زمانی که واقعاً تخصیص نیافته و فشرده نشدهاند، فضایی اشغالنکرده نشان داده شوند؛ این امر پس از همگامسازی (sync) یا در زمان خروج طبیعی دادهها به دیسک رخ میدهد که معمولاً در حدود ۳۰ ثانیه است.
فراخوانیهای سیستمی (ioctls) مورد استفاده این برنامه به دسترسی ریشه (root) نیاز دارند.
اکستنتهای درونخطی (Inline extents) همیشه یکتا در نظر گرفته میشوند، حتی اگر بایتهای یکسانی روی دیسک داشته باشند.
این برنامه اکنون از سیستمفایلهای بزرگتر از ۸ ترابایت روی ماشینهای ۳۲ بیتی پشتیبانی نمیکند - البته سایر ابزارهای btrfs نیز پشتیبانی نمیکنند.
| 2017-09-04 | btrfs |