On Sunday, 13 July 2003 at 22:01:37 -0500, Marc Wiz wrote: > On Mon, Jul 14, 2003 at 11:49:14AM +0930, Greg 'groggy' Lehey wrote: >> On Sunday, 13 July 2003 at 20:57:46 -0500, Marc Wiz wrote: >>> On Mon, Jul 14, 2003 at 10:02:58AM +0930, Greg 'groggy' Lehey wrote: >>>>> I don't believe vinum can optimize full-stripe writes, though, since >>>>> FreeBSD can only do I/O in 64k max chunks, >>>> >>>> 128 kB. >>> >>> I thought physio was limited to 64 KB? The man page on dump states >>> this. Please correct me if I am wrong. >> >> Physio is limited to MAXPHYS, which you'll find defined in >> /usr/include/sys/param.h: >> >> #ifndef MAXPHYS >> #define MAXPHYS (128 * 1024) /* max raw I/O transfer size */ >> #endif > > That's nice to know. What prevents it from being increased beyond > 128K?
There are a couple of things, I think, but I can't recall what. Individual controllers and host adaptors sometimes have quirks. >> I've taken a look at the dump code (yuk!), and it no longer places any >> limitation on the block size. I'll fix the man page. > > Thanks. I have tried increasing the block size but going past 64K > does not seem to help performance. I will have to check the dump > code to see if it is limiting itself to a max of 64K. Check the dump with iostat 1. I think that the CAM layer currently restricts all I/O to 60 kB. If that's the case, you'll probably find that 60 kB blocks will be faster than 64 (which will give you an average block size of 30). Greg -- When replying to this message, please copy the original recipients. If you don't, I may ignore the reply or reply to the original recipients. For more information, see http://www.lemis.com/questions.html See complete headers for address and phone numbers
Description: PGP signature