Subject: re: bufcache question ..
To: John Franklin <franklin@elfie.org>
From: matthew green <mrg@eterna.com.au>
List: port-alpha
Date: 01/30/2003 14:06:40
   On Wed, Jan 29, 2003 at 04:06:28PM -0600, Stephen M. Jones wrote:
   > I was told that the nfsd send error 55 were due to bufcache being set too
   
   There are NFS issues with it set too low.  I don't recall if send error
   55 is one of them.
   
   > low.  I should bump up BUFCACHE to 20 or 25 .. would that seem reasonable?
   
   I haven't tried it on Alpha, but i386 can't set BUFCACHE above 128M
   (unless this has been fixed recently.)  The result is an unbootable
   kernel.
   
   With 1G of memory, try setting BUFCACHE to 20.  If it doesn't boot, try
   it at 12.


you may want to play with all of BUFCACHE, NBUF and NVNODE to get
things used effectively.  BUFCACHE of 20 sounds excessive to me,
unless you are using LFS (which does not use the UBC page cache
yet).  one of the problems is that the old buffer cache is very
inefficient in it's use of kernel virtual memory.  the amount of
physical ram it uses is typically MUCH smaller than the chunk
of address space it uses in the kernel.  this is because each
"buffer" consumes MAXBSIZE (default 64k) from kva.  so when you
have 5000 buffers, you need over 300MB of kva, yet with only
128MB of physical ram backing it.  there are limits to how much
space you can use and it varies on a per-port basis.  there is
the VM_MAX_KERNEL_BUF macro in machine/vmparam.h (?).  you can
also set MAXBSIZE lower, as i do on my macppc box so i can push
up the number of buffers. i currently have 16k MAXBSIZE but also
16K buffers.  i need to increase BUFCACHE beyond the default 5+
as well, as my ram is always used:

File System          Bufs used   %   kB in use   %  Bufsize kB   %  Util %
Total:                   15025  91       51918  65       78688  99      65

funny, 91% of bufs used is the highest i've seen in the current
configuration :-)


this is all too complicated and one fix is for the users of the
old buffer cache (mostly meta data & indirect fs data i understand)
to use the UBC page cache...  it will happen eventually.


.mrg.