Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Feb 1999 11:14:56 -0500
From:      Robert Sexton <robert@kudra.com>
To:        freebsd@digistar.com
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: data buffers, disk i/o      jsb
Message-ID:  <19990218111456.A2658@kudra.com>
In-Reply-To: <Pine.LNX.4.10.9902180827500.1566-100000@digistar.digistar.com>; from freebsd@digistar.com on Thu, Feb 18, 1999 at 08:51:53AM -0600
References:  <Pine.LNX.4.10.9902180827500.1566-100000@digistar.digistar.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 18, 1999 at 08:51:53AM -0600, freebsd@digistar.com wrote:
> 
> hi,
> 
> Is there a compile-time option that I can compile into the kernel to
> improve disk caching/buffering?

FreeBSD self tunes.  Because of the Unified VM/Buffer Cache, resource
allocation can change on the fly.  Generally, it can tune itself
better than you can.

I'd have to defer to more experienced folks for a detailed explanation.

> My concern/question is I have recently put together a 2.2.8 test server
> and noticed that disk access is not up to expectations and I am looking
> for a way to remedy it.

I guess I'd have to ask what your expectations and needs are.
You also haven't provided any details on your hardware.  This is quite
relevant to your question.

> For example, when doing a du or a find across a single slice, the disk is
> physically accessed every time I du or find.  I had expected the first
> find or du access to read and buffer the first pass, and the second find
> or du to read from the disk cache or buffer.  It seems like there's a lot
> of wasted disk i/o when it could be avoided by reading from the disk
> cache.

This depends on the nature of the filesystem, and whats in it. In the
case of /usr/ports, the tree is so mind bogglingly huge that it blows
out most of the relevant caches.    

> Also, if I boot from the boot floppy for installtion and install the ports
> collection, the install moves at a much faster pace, like 15K/s.  If I
> install the ports collection after the install is completed (booting from
> the hard disk) the install takes FOREVER, like 2K/s and there is a HUGE
> amount of disk access.

This really can't be helped.  The ports filesystem on one of my
production machines contains almost 30k inodes. 
Building it is a nightmare.  I'm told it'll build quite quickly on an
asyncronous filesystem. (See Below)

> Is there a compile-time option that I can compile into the kernel to
> improve disk caching/buffering?

None that I'm aware of.  However, there are a number of other, better options.

a.  Mount filesystems with the noatime flag. 
    This elimates a lot of inode updates when walking a large tree.
b.  Mount filesystems async.  This provides terrific performance 
    on large trees like ports, but is the digital equivalent of 
    no seatbelts in a convertable.
c.  Switch to 3.0 and uses soft updates.  This gives you most of the
    performance of async, but with a high degree of safety.

-- 
Robert Sexton - robert@kudra.com, Cincinnati OH, USA
As a software development model, Anarchy does not scale well.  -Dave Welch
Read the Newton FAQ! <http://www.kudra.com/newton/newton-faq>;


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?19990218111456.A2658>