Several times slower! The point is that writing less data performs worse. So I call it weird.
-Zhihui On Tue, 5 Mar 2002, Lars Eggert wrote: > Zhihui Zhang wrote: > > Well, the core of my program is as follows (RANDOM(x) return a value > > between 0 and x): > > > > blocksize = 8192; > > write_size_low = 512; > > > > time(&time1); > > for (i = 0; i < write_count; i++) { > > write_size = write_size_low + > > RANDOM(write_size_high-write_size_low); > > write_size = roundup(write_size, DEV_BSIZE); > > if (testcase == 1) > > write_size = blocksize; > > write_block(rawfd, sectorno, buf, write_size); > > sectorno += blocksize / DEV_BSIZE; > > } > > time(&time2); > > > > If testcase is one, then the time elapsed (time2 - time1) is much less. > > How "much less" in milliseconds? > > Also, in your original mail, you said you had 15,000 of these 8K blocks, > which is only 120MB or so. Use 150,000 or 1,500,000 and check your > results then. > > Lars > > > > > -Zhihui > > > > On Tue, 5 Mar 2002, Lars Eggert wrote: > > > > > >>I agree that it's probably caching at some level. You're only writing > >>about 120MB of data (and half that in your second case). Bump these to a > >>couple of GB and see what happens. > >> > >>Also, could you post your actual measurements? > >> > >>Lars > >> > >> > >>Zhihui Zhang wrote: > >> > >>>The machine has 128M memory. I am doing physical I/O one block at a time, > >>>so there should be no memory copy. > >>> > >>>-Zhihui > >>> > >>>On Tue, 5 Mar 2002, Rogier R. Mulhuijzen wrote: > >>> > >>> > >>> > >>>>At 16:03 5-3-2002 -0500, Zhihui Zhang wrote: > >>>> > >>>> > >>>> > >>>> > >>>>>On Tue, 5 Mar 2002, Julian Elischer wrote: > >>>>> > >>>>> > >>>>> > >>>>>>more writes fit in the disk's write cache? > >>>>>> > >>>>>> > >>>>>For (1), it writes 15000 * 8192 bytes in all. For (2), it writes 15000 * > >>>>>4096 bytes in all (assuming the random number distributes evenly between 0 > >>>>>and 8192). So your suggestion does not make sense to me. > >>>>> > >>>>> > >>>>How large is your buffercache? it might be that the 15000 * ~4096 roughly > >>>>matches with your cache, and 15000 * 8912 doesn't. > >>>> > >>>>Case (1) would require a lot more physical IO in that case than case (2) > >>>>would require. > >>>> > >>>> Doc > >>>> > >>>> > >>>> > >>>> > >>>>>-Zhihui > >>>>> > >>>>> > >>>>> > >>>>>>On Tue, 5 Mar 2002, Zhihui Zhang wrote: > >>>>>> > >>>>>> > >>>>>> > >>>>>>>I am doing some raw I/O test on a seagate SCSI disk running FreeBSD 4.5. > >>>>>>>This situation is like this: > >>>>>>> > >>>>>>>+-----+----+----+----+----+----+----+----+----+----+---+------ > >>>>>>>| | | | | | | | | | | | .... > >>>>>>>+-----+----+----+----+----+----+----+----+----+----+---+------ > >>>>>>> > >>>>>>>Each block is of fixed size, say 8192 bytes. Now I have a user program > >>>>>>>writing each contiguously laid out block sequentially using /dev/daxxx > >>>>>>>interface. There are a lot of them, say 15000. I write the blocks in two > >>>>>>>ways (the data used in writing are garbage): > >>>>>>> > >>>>>>>(1) Write each block fully and sequentially, ie. 8192 bytes. > >>>>>>> > >>>>>>>(2) I still write these blocks sequentially, but for each block I only > >>>>>>>write part of it. Exactly how many bytes are written inside each > >>>>>>> > >>>>>>> > >>>>>block is > >>>>> > >>>>> > >>>>>>>determinted by a random number between 512 .. 8192 bytes (rounded up a > >>>>>>>to multiple of 512 bytes). > >>>>>>> > >>>>>>>I find out the the performance of (2) is several times better than the > >>>>>>>performance of (1). Can anyone explain to me why this is the case? > >>>>>>> > >>>>>>>Thanks for any suggestions or hints. > >>>>>>> > >>>>>>>-Zhihui > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>>To Unsubscribe: send mail to [EMAIL PROTECTED] > >>>>>>>with "unsubscribe freebsd-hackers" in the body of the message > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>To Unsubscribe: send mail to [EMAIL PROTECTED] > >>>>>with "unsubscribe freebsd-hackers" in the body of the message > >>>>> > >>>>> > >>> > >>>To Unsubscribe: send mail to [EMAIL PROTECTED] > >>>with "unsubscribe freebsd-hackers" in the body of the message > >>> > >>> > >> > >> > >>-- > >>Lars Eggert <[EMAIL PROTECTED]> Information Sciences Institute > >>http://www.isi.edu/larse/ University of Southern California > >> > >> > > > > > > -- > Lars Eggert <[EMAIL PROTECTED]> Information Sciences Institute > http://www.isi.edu/larse/ University of Southern California > To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message