> 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