Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Oct 1998 22:46:40 -0500
From:      "Thomas F. Keefe" <keefe@cse.psu.edu>
To:        "FreeBSD Mailing List" <scsi@FreeBSD.ORG>
Subject:   Sequential Disk I/O
Message-ID:  <000f01bdfbdc$3ee7d6c0$0100a8c0@whistle.bitstream.net>

next in thread | raw e-mail | index | archive | help
I am trying to write the logging portion
of a database and have had trouble getting
good performance. I am trying to avoid seek
and rotational latency by writing consecutive
512 byte blocks to the disk.

Here are some details. I am using
Mach/Lites, with the drivers for the Adaptec 
aic7xxx controller ported from FreeBSD 
(the version from around 9/97). I am using
an Adaptec 2940UW with a Western Digital
Enterprise 2G wide SCSI drive (I have tried
some other drives as well.)
The writing is done by two tasks (processes) 
so that the next write should always be ready when 
the previous one finishes. I am able to verify
that multiple SCSI requests are in the adapter
concurrently. I have also verified that the
SCSI write requests are to consecutive logical blocks.

However, even with 8 requests in the controller,
the average time to complete a request is about
4ms. This amounts to a few sectors written
per revolution. I get similar results with iozone 
under FreeBSD. When the block size is 512 bytes, 
the throughput is about 50KB/sec. (for a raw device). 
When the block size is large the bandwidth hits 
several MB/sec.

Is it possible to achieve sequential I/O rates
(i.e., no seek latency and no rotational latency)
with small write requests? Any insight you can 
provide will be appreciated. Thanks.

Tom Keefe
keefe@cse.psu.edu
Dept. of Computer Science and Eng.
Penn State





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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000f01bdfbdc$3ee7d6c0$0100a8c0>