Extended Attribute Write Performance

Charles P. Wright cpwright at cpwright.com
Thu Jan 12 17:07:51 UTC 2006


Hello,

I'm writing an application that makes pretty extensive use of extended
attributes to store file attributes on Ext2.  I used a profiling tool
developed by my colleague Nikolai Joukov at SUNY Stony Brook to dig a
bit deeper into the performance of my application.

In the course of my benchmark, there are 54247 setxattr operations
during a 54 seconds.   They use about 10.56 seconds of the time, which
seemed to be a rather outsized performance toll to me (~40k writes took
only 10% as long).

After looking at the profile, 27 of those writes end up taking 7.74
seconds.  That works out to roughly 286 ms per call; which seems a bit
high.

The workload is not memory constrained (the working set is 50MB + 5000
files).  Each file has one extended attribute block that contains two
attributes totaling 32 bytes.  The attributes are unique (random
actually), so there isn't any sharing.

Can someone provide me with some intuition as to why there are so many
writes that reach the disk, and why they take so long.  I would expect
that the operations shouldn't take much longer than a seek (on the order
of 10ms, not 200+)?

Charles




More information about the Ext3-users mailing list