Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Mar 2002 17:03:28 -0500 (EST)
From:      Zhihui Zhang <zzhang@cs.binghamton.edu>
To:        "Rogier R. Mulhuijzen" <drwilco@drwilco.net>
Cc:        Julian Elischer <julian@elischer.org>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: A weird disk behaviour
Message-ID:  <Pine.SOL.4.21.0203051659350.12061-100000@onyx>
In-Reply-To: <5.1.0.14.0.20020305225819.01c3a678@mail.drwilco.net>

next in thread | previous in thread | raw e-mail | index | archive | help

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 majordomo@FreeBSD.org
> > > > with "unsubscribe freebsd-hackers" in the body of the message
> > > >
> > >
> > >
> >
> >
> >To Unsubscribe: send mail to majordomo@FreeBSD.org
> >with "unsubscribe freebsd-hackers" in the body of the message
> 
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SOL.4.21.0203051659350.12061-100000>