Cluster (or Allocation Unit) Size

Published: 01 mars 2011 | Category: Optimization | Labels: , , , , , | Short url » | Be the first to comment! »

Alla som någon gång formaterat en hårddisk och använt filsystemen FAT eller NTFS har fått välja en storlek på kluster- eller allokerings-enheten. Det förvalda alternativet heter ”Standardstorlek” eller ”Default”. Hur många av er har då funderat på vad standardstorleken är eller vad en allokeringsenhet är. Det är något jag tänkte ta upp för diskussion här. Kom gärna med egna kommentarer och erfarenheter kring detta.

Hur stor är då Standardstorleken på allokeringsenheten? Den varierar mellan 512 byte till 64KB och beror av hur stor hårddisken eller partitionen är. För NTFS ligger den på 4KB för diskar upp till 16TB och för FAT32 ligger den på 32KB för diskar mellan 32GB till 2TB.

Storleken på allokeringsenheten (även kallad klusterstorlek eller sektor) är den minsta tillåtna filstorleken som kan sparas på hårddisken eller partitionen som formateras. Vad händer om man då vill spara en fil som är mindre än den minsta tillåtna filstorleken? Det som händer är att filen läggs på en sektor som då använder utrymmet för just en sektor. Eller om filen skulle vara en och en halv allokeringsenhet så fördelas den över två sektorer och så vidare. Här kan man se att en stor sektor ger ökad ”förlust” av hårddiskutrymme, man kan också fråga sig varför man över huvud taget vill ha en stor sektor? Så som mekaniska hårddiskar är konstruerade går det fortare att hitta stora sektorer vilket gör att man får en ökad prestanda med stora sektorer men som sagt ”förloras” utrymme. Microsoft säger att förlusten” av utrymme är ungefär (sektorstorleken) / 2 * (antalet filer).

I de allra flesta fall är klusterstorleken ingen man behöver fundera över och kan utan problem välja att använda Standardstorleken. Då förutsätts att dina filer oftast är små och i allmänhet förblir i samma storlek. Det kan dock finnas prestanda att tjäna på att välja klusterstorlek efter den typ av filer du tänker spara på hårddisken. Så om du har en stor hårddisk och inte har något emot att ”slösa” med utrymme, formatera den med en större klusterstorlek (16KB-32KB) för att få mer prestanda. Exempelvis om filerna i allmänhet är stora eller tenderar att växa med tiden när applikationer ändra dem. Använder du dock komprimeringen i NTFS behöver du dock behålla klusterstorleken på 4KB. Tänk också på att om klusterstorleken är för stor för de filer du i allmänhet sparar tenderar disken att behöva fragmenteras oftare.

Mer läsning för optimering av NTFS finns i artikeln från O’Reilly Media.


Leave a comment!