2011-08-12 13:55:07

by torn5

[permalink] [raw]
Subject: Ext4 allocation strategy

Hi all,
I can't find info on the ext4 allocation strategy, while this would be
useful to me to understand ext4 performance implications when I put it
above complex layers of RAID and LVM.
Just to be clear, i'm NOT talking about the delayed allocation thing.
XFS has the "Allocation Groups" which are relatively well described, for
ext4 I don't know what to look for. And I also can't find an application
which gives me a visual map of the ext4 allocated blocks in my
filesystem so I cannot easily "inspect" this by myself.

So can you tell me something?

In particular, does ext4 start from the beginning of the partition and
goes upward filling the earliest free spaces like it was for the old
FAT32, or does it try to spread allocations evenly on all the LBAs
available to that partition, e.g. by bisecting the largest free space
every time? Suppose some time passes from one file creation to another.

And how does it behave if it has to create zillions of small files
simultaneously (multithreaded application): where does it place them?

Thank you


2011-08-12 22:25:12

by Benjamin Peterson

[permalink] [raw]
Subject: Re: Ext4 allocation strategy

torn5 <torn5 <at> shiftmail.org> writes:
>
> So can you tell me something?

You might find the comments in fs/ext4/mballoc.c helpful.