stat speed

Eric Anderson anderson at
Sat Feb 18 20:35:27 PST 2006

Mark Bucciarelli wrote:
> On Sat, Feb 18, 2006 at 11:06:57PM -0500, Mark Bucciarelli wrote:
>> I'm curious how fast stat is.
>> I generated a list of 200,000 file names
>>     # find / | head -200000 > files.statspeed
>> then ran a million iterations of randomly picking a file name and
>> stating it (see attached program).
> Hmmm, 200,000 files 1,000,000 iterations.  On avg, each file hit
> five times.  Uhh, that's not a good way to avoid caching.  Doh.
> Wow, caching is pretty amazing. I just reran the program, this time
> using 500,000 file paths and only stat'ing 10,000 of them.
> The first run was 99,059/second, the second was 188,239.
> So I guess 100,000/second is about right on my system w/o cache.

I'm also wondering if by using find, and getting a list of 
files/directories in the default order, you might be seeing some results 
that aren't really completely random.  What I mean is, your find is 
traversing the tree, probably digging through directories based on inode 
number or last modified time (can't recall which), but either way, it's 
possible your list consisted of clumps of files/dirs in the same 
cylinder groups, specially since you grabbed the first 500k files, 
instead of picking a random file from the entire list of files on the 
filesystem, and building a list from that random plucking..  This is all 
speculative, but if you had lots of files in a directory, those could be 
clumped in a few cylinder groups and therefore you might see higher 
numbers than sampling from the entire disk (since the speed is probably 
mostly dominated by disk seeks I believe).

What exactly are you trying to determine?


Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.

More information about the freebsd-performance mailing list