Operating System - HP-UX
1836638 Members
1511 Online
110102 Solutions
New Discussion

Re: Nbuf, dbc_max_pct and dbc_min_pct

 
SOLVED
Go to solution
Charles Harris
Super Advisor

Nbuf, dbc_max_pct and dbc_min_pct

Dear all,

I've got a performance related question that I'd appreciate your views on:-

L class server HPUX11 6gig of memory & EMC disks.

I have read through the forums and have seen various postings regarding optimal settings for the dbc_max and dbc_min. The server in question has it's dbc_max set to 35% which results in a 1.5gig cache. My question is, with the EMC arrays buffering IO (ie all emc operations are written to the emc cache without the server hitting the physical emc disks) is such a large amount of system memory required for efficient use?

I've seen posts recommending < 500meg! - any tips comments or pointers greatly appreciated!!!

Cheers,


-ChaZ-
7 REPLIES 7
Scott Van Kalken
Esteemed Contributor

Re: Nbuf, dbc_max_pct and dbc_min_pct

Personally, I'd make dbc_max_pct about 10% and let the EMC handle it.

Theoretically you could make it even lower and still let the EMC handle it, but that doesn't account for root volume disks.

If you boot off the EMC as well, then why the hell not just let the EMC handle it all... it's what they're good at.

Just an opinion.

Scott.
Charles Harris
Super Advisor

Re: Nbuf, dbc_max_pct and dbc_min_pct

Thanks for the suggestion!
A. Clay Stephenson
Acclaimed Contributor
Solution

Re: Nbuf, dbc_max_pct and dbc_min_pct

Hi Charles:

The best answer to this question is that it depends. You really have to measure this for yourself.

Having said all that, I can tell you what the best system tuner I know suggests in most cases:

Forget dynamic buffer cache and set bufpages to something aound 80000 (320MB). The marginal improvements above that tend to be very, very small. Of course, some systems will benefit from more buffer cache and that's why it's important to measure. Only in extreme cases will buffer cache above 800MB be of any value.
The real answer is to look at buffer cache hit rates and note the improvements; at some point the improvements will become very small or disappear altogether.

I would read this article by this same system tuner:
http://docs.hp.com//hpux/onlinedocs/os/11.0/tuningwp.html#bufpages

Note that what is said in the article tends to dispute what I have stated earlier; however, everytime I have heard him speak his advice remains - don't use dynamic buffer cache but set bufpages to around 300-400MB and that is generous. When I do these same measurements on most systems, I typically find the same to be true. I have noticed that 11.11 boxes do benefit more from larger buffer caches and typically run them at about 800MB's.


Regards, Clay
If it ain't broke, I can fix that.
John Payne_2
Honored Contributor

Re: Nbuf, dbc_max_pct and dbc_min_pct

The way I see it, the buffer cache is for helping out if disk is too slow to read/write. (Too many requests)

You need to look at what the system is really doing. my guess is that you really do not want a large cache. I look to shoot for a 300MB maximum size, or less, if I know that the apps on the box really do not need the space. For example, I have A500's that just run an oracle client. Nothing else happens on the box. The machines run quite happily with a buffer cache max of 150MB.

So, with a 6GB memory size, if you want a dynamic buffer cache, go for a value of 1 for dbc_min_pct and a value of 5 for dbc_max_pct. This will allocate 60-300MB for the buffer cache. Otherwise, do not use dbc_max and dbc_min and hard code a buffer. (If you know you need it and want it to stay the same.)

I do not think anyone really needs a buffer cache above 300MB. Disk is just too fast these days...

John
Spoon!!!!
James R. Ferguson
Acclaimed Contributor

Re: Nbuf, dbc_max_pct and dbc_min_pct

Hi Charles:

The buffer cache you have is undoubedly wasteful. You're going to see the 'syncer' daemon really pulse as it flushes the server's buffer cache too.

If this server is running Oracle, or a database engine that manages its buffers itself, then a large buffer cache is wasteful anyway. If you have Online JFS, use the mount options available to you to further negate buffer caching and enhance performance:

delaylog,nodatainlog,mincache=direct,convosync=direct

Beyond that, I would agree that the intelligent, well-cached EMC San is going to do a very adequate job for you. I'd reduce your 'dbc_max_pct' to around 5-10%.

Regards!

...JRF...
John Payne_2
Honored Contributor

Re: Nbuf, dbc_max_pct and dbc_min_pct

But I do not agree that you should be thinking in percent...

Think in terms of the actual size that you want, since you have 6GB of memory, then if you want a dynamic cache, convert the size to the closest approximate percent...

John
Spoon!!!!
Charles Harris
Super Advisor

Re: Nbuf, dbc_max_pct and dbc_min_pct

Thanks for the mass of responces, I know from previous threads that this is a bit of a contensious issue. I'm going to have to check out your suggestions tomorrow, I posted the question over a 56K modem (out of desperation!) - so I'll have to dish the points tomorrow am (GMT+0).


Thanks again for the support!

-ChaZ-

Ps. Just for reference, this is a database server (informix) but it handles a very large number of concurrent queries, mainly via HTTP requests to it's Iplanet server (same box). The boot disks are not EMC'd their in a HAS, so I suppose they need some buffering although they are never highly utilised once the server is up.