tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: RAIDframe performance vs. stripe size



On Fri, 11 May 2012, Edgar Fuß wrote:

> EF> I have one process doing something largely resulting in meta-data
> EF> reads (i.e. traversing a very large directory tree). Will the kernel
> EF> only issue sequential reads or will it be able to parallelise, e.g.
> EF> reading indirect blocks?
> GO> I don't know the answer to this off the top of my head... 
> Oops, any file-system experts round here?

It depends.  

To do any disk operation you need the disk address.  Those are stored in 
the inode and indirect blocks.  If you have all the relevent inodes in 
memory, the filesystem could issue all the reads in parallel.  (Unlikely 
if it's just one process, since it will request one directory or even one 
directory entry at a time.)  

However, since ffs does clustering, it will probably try to read the 
entire directory (if it's contiguous 64KB or less) in one operation.  
That's true for all files.  In general it won't access just one filesystem 
block.  It will try to readahead 64KB unless you have disabled clustering 
on that filesystem.  (Under normal circumstances it will also do 64KB 
write behind, but you're running NFS which has that restriction of hitting 
non-volatile storage before returning status, so I don't think the 
underlying filesystem can do clustering in that circumstance.)

Eduardo


Home | Main Index | Thread Index | Old Index