On Wed, 2 Oct 2013, Benjamin LaHaise wrote: > Date: Wed, 2 Oct 2013 12:52:10 -0400 > From: Benjamin LaHaise <bcrl@xxxxxxxxx> > To: Lukáš Czerner <lczerner@xxxxxxxxxx> > Cc: Eric Sandeen <sandeen@xxxxxxxxxx>, Jan Kara <jack@xxxxxxx>, > Theodore Ts'o <tytso@xxxxxxx>, Andreas Dilger <adilger.kernel@xxxxxxxxx>, > linux-ext4@xxxxxxxxxxxxxxx > Subject: Re: [PATCH] ext4: add noorlov parameter to avoid spreading of > directory inodes > > On Wed, Oct 02, 2013 at 06:44:56PM +0200, Lukáš Czerner wrote: > > What is the frequency of unlink operation in comparison to file > > creation ? There is a possible issue with the global goal cursors > > s_mb_last_group and s_mb_last_start which might make your files > > increasingly scattered across the disk. I've attempted to address > > this problem with my patch > > unlink() is 1:1 with creation. The storage on disk is essentially used > as an elastic buffer for the rest of the system. That said, unlink() may > not occur for minutes, hours or days. > > In terms of actual allocation pattern on disk, using fallocate() is > sufficient to ensure that files on disk are usually limited to 1 extent, > and allocated immediately following each other. Without fallocate(), I > was seeing allocations aligned to 2048 block boundaries for 9MB files, > which hurt performance quite a bit. I was not talking about internal file fragmentation but the actual files lying further from the ideal block group they should have been laid out. > > > ext4: Try to better reuse recently freed space > > > > What is the usual size of the files this application is creating ? > > It varies. The target is 8MB, but it ranges from 5MB to 22MB. In the > worst case it can be as small as 4KB. It means that you're indeed using stream allocation so this issue would affect you. > > -ben > > > Thanks! > > -Lukas > >