*BSD News Article 58161


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.mel.connect.com.au!munnari.OZ.AU!ihnp4.ucsd.edu!news.cerf.net!nntp-server.caltech.edu!rdv
From: rdv@alumni.caltech.edu (Rodney D. Van Meter)
Newsgroups: comp.unix.bsd.bsdi.misc,comp.periphs.scsi,comp.arch.storage
Subject: Re: SCSI disk geometries:  weird probe defaults are faster than custom!
Date: 5 Jan 1996 19:14:48 GMT
Organization: California Institute of Technology, Alumni Association
Lines: 50
Message-ID: <4cjtb8$m8j@gap.cco.caltech.edu>
References: <4cf25e$m82@olympus.nwnet.net>
NNTP-Posting-Host: alumni.caltech.edu
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.bsdi.misc:1837 comp.periphs.scsi:43826 comp.arch.storage:7613

In article <4cf25e$m82@olympus.nwnet.net>,
Anthony D'Atri <aad@nwnet.net> wrote:
>(Intel P90 machine running BSDI 2.01)
>
>I discovered that when I newfs'd C partitions, dumpfs complained about
>there not being room for the rotation tables.  This led me to discover that
>when one has disksetup [P]robe a disk, it defines the geometry to be fairly
>bizarre.  For example, it reports a ~2G Seagate ST32250N as having
>2048 sectors/track, 1 head, and 2048 cylinders.  When I newfs a C partition
>on this disk with this strange geometry, iozone gives me 32.18/58.25 seconds
>to write/read a 100M file.  When I newfs it with a carefully constructed 
>more normal-looking geometry (126 sectors/track, 11 heads, 3026 cylinders)
>iozone is much slower, taking 51.3/103.15 seconds to write/read a 100M
>file on a newly newfs'd filesytem.
>

You are talking about SCSI disks, right? Then the concept of # of
tracks, sectors/track, etc. are essentially meaningless. The SCSI
addressing scheme is a linear collection of blocks numbered 0 to N-1.

What's more, virtually all modern are ZCAV (Zoned Constant Angular
Velocity), which means that there are more sectors/track on the outer
tracks. So any fixed number of sectors/track included in a system
configuration must be wrong.

What's probably going wrong is that either you reformatted the disk
with an interleave, or more likely that in doing the newfs you
included a rotdelay or set maxcontig to be something like 1. What
happens is that the file system attempts to be smart, and only uses
every other block for a given file. The idea is that, if you're
reading one block at a time, it's better to skip a sector and have the
next one come under the head just as you start the second read,
whereas if they were allocated consecutively, you might have to wait
an entire rotation.

For older, dumber disks with little or no caching/readahead, etc. this
made a lot of sense. Modern disks have more smarts and buffer space,
so reads of consecutive blocks tend to be almost as fast as a single
two-block read.

Writes are another story; if the disk does no write caching the
interleave might conceivably stil be a win. I don't think it's
necessary for any modern disks, though.

Bottom line: carefully check the man pages for newfs, mkfs, and even
mount to see that you haven't instructed it to limit consecutively
placed blocks.

			--Rod