# NBUF NHBUF and MAXBUF tuning - SCO

This is a discussion on NBUF NHBUF and MAXBUF tuning - SCO ; On OSR506 platform with 4G memory, the mtune shows:NBUF 0 24 450000,that means the maximum value of NBUF is 450000,but if I give 1000000 to NBUF,when system starts,it give the following message: kernel: Hz = 100, i/o bufs = 467116k ...

# Thread: NBUF NHBUF and MAXBUF tuning

1. ## NBUF NHBUF and MAXBUF tuning

On OSR506 platform with 4G memory, the mtune shows:NBUF
0 24 450000,that means the maximum value of NBUF is
450000,but if I give 1000000 to NBUF,when system starts,it give the
following message:

kernel: Hz = 100, i/o bufs = 467116k (high bufs = 466092k)CONFIG:
Buffer allocation was reduced (NBUF reduced to 467116)

(1)That means NBUF gets a value of 467116, where does this number come
from?

ps:
(2) If NBUF has a value other than zero, Is it ok to let NHBUF=0? Can
NHBUF self-tune according to NBUF when NBUF is not set to zero?
(3)When does MAXBUF have effect, when NBUF is zero or NBUF is not zero?

2. ## Re: NBUF NHBUF and MAXBUF tuning

On Apr 2, 1:26 am, yanna...@126.com wrote:
> On OSR506 platform with 4G memory, the mtune shows:NBUF
> 0 24 450000,that means the maximum value of NBUF is
> 450000,but if I give 1000000 to NBUF,when system starts,it give the
> following message:
>
> kernel: Hz = 100, i/o bufs = 467116k (high bufs = 466092k)CONFIG:
> Buffer allocation was reduced (NBUF reduced to 467116)
>
> (1)That means NBUF gets a value of 467116, where does this number come
> from?
>
> ps:
> (2) If NBUF has a value other than zero, Is it ok to let NHBUF=0? Can
> NHBUF self-tune according to NBUF when NBUF is not set to zero?
> (3)When does MAXBUF have effect, when NBUF is zero or NBUF is not zero?

On OSR5 the buffer memory maximum is about 450MB, hence the 467116K.

First, have you checked sar -b to see what your %rcache and %wcache
hits
are. Never helps to fix a problem you do not have.

This topic is fairly well documented, check out:

http://osr507doc.sco.com/en/PERFORM/...fer_cache.html
http://osr507doc.sco.com/en/PERFORM/mp_nhbuf.html

You will find this information on NHBUF:

If you set NHBUF to 0, the system configures the number of buffer
cache hash queues automatically at startup. On a uniprocessor system,
the system sets the number of hash queues to the nearest power of 2
that is greater than or equal to half the value of NBUF. This should
be treated as a recommended lower bound for NHBUF; you may find that
setting NHBUF to a higher value gives better performance.

NOTE: The value that you assign to NHBUF must be a power of 2; 512,
1024, and 2048 are examples.

On a multiprocessor system, the system sets the number of hash queues
to the nearest power of 2 that is greater than or equal to twice the
value of NBUF. The reason for this can be seen from ``Keeping the
ratio of hash queues to buffers low reduces contention for SMP''. On a
system with an SCO SMP License, the kernel running on one CPU locks
the entire hash queue when it accesses a buffer. The kernel running on
another CPU that wants to access the same hash queue must wait until
it is released. Such contention can be avoided by keeping the ratio of
hash queues to buffers low. For example, if the value of NBUF is 32000
on a system with an SCO SMP License, you should set NHBUF to at least
65536.

Mike

3. ## Re: NBUF NHBUF and MAXBUF tuning

Many thanks, I see.