> Yes, temporarily moving to UFS would eliminate the
> xcalls.
> 
> - Steve
> 

The smaller UFS blocksize will probably help, too.  The call stacks indicate 
the application in question is using fread() to read data.  The fread() call 
will read a full disk block at a time, which IIRC comes from the bsize field of 
the statvfs structure.  That's probably 128K for the ZFS file system in this 
example.

But the data I skimmed seems to indicate that only a small portion of the data 
read is used, given the relatively small number of bytes written via write() 
calls that I saw.  Add in the fact that the number of lseek()/llseek() calls in 
the dtrace output posted is roughly the same as the number of read() calls, and 
it looks like the code is implemented using fseek()/fread() where each pair of 
calls winds up reading 128K but probably only using a few kb.

In short, it looks like the block size of the ZFS volume is causing the 
application to read many times the amount of data it needs, in addition to all 
the other issues already noted in this thread.

So it shoud run faster on UFS for multiple reasons.
-- 
This message posted from opensolaris.org
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to