خیلی از افراد در محیط Windows به هنگام format کردن driveهای مختلف، وظیفه مدیریت کردن ویژگی‌های partitionهاشون رو بر عهده سیستم عامل رها می‌کنن. این کار به خودی خود دچار مشکل نیست، ولی بعضی مواقعی هم وجود دارند که تنظیم این ویژگی‌ها به صورت دستی، برای ما مفیدتر از تنظیمات پیش‌فرض سیستم عامل باشن. در این پست قصد دارم تا در مورد یکی از ویژگی‌های قابل تنظیم در هنگام format کردن driveهایمان، یعنی allocation unit، و هدف و نحوه بهره‌مند شدن از این ویژگی بنویسم.

قطعا همه کاربران Windows به هنگام format کردن یک drive با dialogue زیر مواجه شده‌اند. با هم نگاهی اجمالی به قسمت‌های مختلف این dialogue بیاندازیم:

Capacity: مشخص کننده میزان ظرفیت کل partitionیست که قصد format کردن آن را داریم.

Volume lablel: از طریق این ویژگی می‌توانیم برای driveمان یک اسم دلخواد انتخاب کنیم.

File system: از طریق این گزینه می‌توانیم file system مورد نظرمان را انتخاب کنیم، در Windows 10 به جز برخی از نسخه‌های Enterprise، حق انتخاب ما محدود به NTFS و یا REFS است؛ هر چند که برای partitionهای کوچک، FAT و FAT32 هم به این انتخاب‌ها اضافه می‌شوند.

Perform a quick format: به صورت عادی، دستور format ابتدا drive را به جهت پیدا کردن bad sectorهای احتمالی مورد بررسی قرار می‌دهد. این گزینه باعث می‌شود تا format بدون اجرای این تست، اجرا شود.

Enable file and folder compression: باعث می‌شود تا در این partition، تمام fileها به صورت فشرده ذخیره شوند. معمولا به دلیل سربار بالای اجرای این ویژگی، از آن استفاده نمی‌شود. همانطور که در تصویر هم می‌بینیم، این ویژگی در نسخه Windows دستگاه من، از طریق format dialogue قابل دسترسی نیست.

Allocation unit size: به نظر من جالب‌ترین ویژگی این dialogue، همین گزینه است. گزینه‌ای که مقادیر مرموز زیادی بین 4096 تا 2048K را ارائه می‌دهد، ولی ما معمولا آن را به صورت defaul رها می‌کنیم. این مقادیر در واقع مشخص کننده کوچکترین فضایی هستند که می‌تواند به یک file اختصاص یابد. یک partition بر اساس این مقدار به واحدهای کوچکتری تقسیم می‌شود. هنگامی که fileها روی یک partition ذخیره می‌شوند، به بخش‌های کوچکتری تقسیم می‌شوند که هر بخش در واقع، داخل یکی از این واحدها قرار می‌گیرد.

پس یک partition با مقدار allocation unit برابر 4096، به بخش‌های کوچکتر که هر کدام 4096byte هستند تقسیم می‌شود. برای مثال، یک file با حجم 1MB = 1024K روی partition مفروض، به 250 بخش، تقسیم می‌شود و یا اگر allocation unit ما برابر با 64K باشد، به 16 بخش تقسیم می‌شود. این تفاوت به این معنی است که دستگاه الکترومکانیکی ما به هنگام نوشتن و خواندن این file نزدیک به ۱۶٪ کار کمتری انجام می‌دهد.

این روزها partitionهای NTFS جدید را می‌توان با allocatin unitی معادل با 2048M هم تنظیم کرد که باعث تقسیم شدن فایل‌ها به 2MB می‌شود و جالب اینجاست که هر کدام از بخش‌های fileمان از ظرفیت یک floppy disk که در دهه ۹۰ کاربرد فراوانی داشت هم، بیشتر است.

مزیت allocation unit بزرگ تنها بر روی HDDها قابل در نظر گرفتن است و روی SSDها نمی‌توان از آن استفاده کرد. چرا که HDDها دستگاه‌های الکترومکانیکی هستند که تحت محدودیدهای فیزیکی قرار دارند. کاملا واضح است که هر چه یک file بیشتر بر روی یک partition پراکنده شده باشد، مدت زمان بیشتری نیاز است تا drive بتواند همه اجزای این file را به دست سیستم عامل برساند. در واقع، به صورت تئوری، هر چه که که یک فایل به قسمت‌هایی با اندازه‌های بزرگ‌تر تقسیم شده باشد، head باید جابجایی کمتری برای خواندن و نوشتن آن file انجام دهد.

اما حالا با یک سوال اساسی مواجه می‌شویم! پس چرا به صورت پیش‌فرض allication unit همه HDDها برابر با 2046K نیست؟ باید به این نکته توجه کنیم که allocation unit در واقع، بیانگر کمترین مقداریست که روی یک drive به یک file اختصاص پیدا میکند. پس در واقع در این حالت یک file کوچک که برای مثال تنها شامل ۲ کاراکتر است و اندازه آن برابر با 2byte است هم داخل یک واحد به اندازه 2046K ذخیره می‌شود و این به معنی غیرقابل استفاده شدن و هدر رفتن 2047.9K دیگر از فضای این واحد است. در شرایطی که ما قصد ذخیره کردن تعداد زیادی file با حجم کم را داشته باشیم، این fileها باعث هدر رفتن مقدار قابل توجهی از حافظه ما می‌شوند.

همانطور که در تصویر اول می‌بینید، ۴۷ fileی که در واقع data fileهای firefox هستند، روی یکی از partitionهای من که allocation unit استاندارد دارد، 3.85MB فضا اشغال کرده‌اند و عکس دوم تلاش من برای انتقال همین file‌ها به partition دیگری است که allocation unit آن برابر با 2048K است. می‎بیند که همان فایل‌ها حالا برای ذخیره شدن نیاز به 126MB فضا دارند و با توجه به کم بودن ظرفیت خالی این partition، انتقال آنها، به مشکل خورده است.

اما می‌توان در یک سری از شرایط هم میزان فضای هدر رفته در هر واحد رو به حداقل رسوند. برای مثال در partitionهایی که صرفا برای ذخیره backupها یا سایر fileهای حجیم مثل ویدئوها، تصاویر با فرمت RAW و یا آرشیوهای حجیم zip از disk imageهایمان استفاده می‌شوند. من معمولا برای partitionهایی که برای ذخیره سازی موارد فوق مورد استفاده قرار می‌گیرند، مقدار allocation unit را بزرگ انتخاب می‌کنم؛ چرا که در این شرایط سرعت برای من پارامتر مهم‌تری نسبت به حداکثر فضای آزاد برای ذخیره سازی است.