Operating System - HP-UX
1753802 Members
7921 Online
108805 Solutions
New Discussion юеВ

Tuning Kernel Parameter dbc_max_pct

 
SOLVED
Go to solution
Cliff Lim Kok Hwee
Regular Advisor

Tuning Kernel Parameter dbc_max_pct

Gd Day Forum,

Currently my HP-UX 11.00 server is having the following value Buf Cache: 4.00gb and Phy Mem:8.00bb

I need to reduce the Buf Cache to 3.00gb because Oracle application requires more memory.

Current dbc_mac_pct = 50
Current dbc_min_pct = 5

Solution: I need to tune dbc_mac_pct = 37 to achieve Buf Cache = 2.96gb.

Query: Can anyone advise me the commands and backup to perform using command mode rather then thru SAM to get this parameter dbc_mac_pct tune?

Quer: Correct me I dun think I need to tune the parameter dbc_min_pct right?

thanks n regards/cliff
16 REPLIES 16
Sridhar Bhaskarla
Honored Contributor
Solution

Re: Tuning Kernel Parameter dbc_max_pct

Cliff

Buffer cache of 2.96GB??.. That's too much. For 11.0, 600MB will be the maximum needed. I wouldn't go beyond 600 which is 7%. You can set your min_pct to 2% which is minimum. I use the following commands to tune my kernel.If you have enough space in /stand, backup the current kernel to be space

#cd /stand
#cp system system.112604
#cp vmunix vmunix.112604
#/usr/lbin/sysadm/system_prep -s /stand/system
#kmtune -s dbc_max_pct=7
#kmtune -s dbc_min_pct=2
#grep dbc system
(make sure dbc* values are listed correctly)
#cp system build
(build is a directory under /stand)
#mk_kernel -o /stand/vmunix
#kmupdate
#cd /
#shutdown -r y now

Once the system comes backup, run
#kmtune -l -q dbc_max_pct
#kmtune -l -q dbc_min_pct

to verify.

-Sri
You may be disappointed if you fail, but you are doomed if you don't try
Thierry Poels_1
Honored Contributor

Re: Tuning Kernel Parameter dbc_max_pct

Hi,

if this is an only a database server, you can lower dbc_min_pct and dbc_max_pct to something like 2 & 4. Oracle is using its own buffer cache, so there is no need in double caching everything on OS level.

regards,
Thierry.
All unix flavours are exactly the same . . . . . . . . . . for end users anyway.
Jeroen Peereboom
Honored Contributor

Re: Tuning Kernel Parameter dbc_max_pct

In addition to the commands mentioned:
why not use SAM?

;-)

JP

Geoff Wild
Honored Contributor

Re: Tuning Kernel Parameter dbc_max_pct

Info about buffer cache in this recent thread:

http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=749930

With 8GB of ram - set dbc_max_pct to 8

Rgds...Geoff
Proverbs 3:5,6 Trust in the Lord with all your heart and lean not on your own understanding; in all your ways acknowledge him, and he will make all your paths straight.
Steven E. Protter
Exalted Contributor

Re: Tuning Kernel Parameter dbc_max_pct

My two cents:
WE run:

Current dbc_mac_pct = 7
Current dbc_min_pct = 5

We run very well. Any changes on the fly of the actual system use of these parameters is extremely expensive in cpu terms. Its best to find a couple of numbers that work well for you and stick in a short range.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Eric Antunes
Honored Contributor

Re: Tuning Kernel Parameter dbc_max_pct

Hi Cliff,

If you are using Oracle application, take a look at this attachment with all tunable kernel parameters because there is a lot of them that influences apps&db performance: maxswapchunks is another one, etc...

As said before, you shouldn't use more than 10-15 for dbc_max_pct. For db cache, use db_block_buffers init.ora parameter.

Best Regards,

Eric
Each and every day is a good day to learn.
Fred Ruffet
Honored Contributor

Re: Tuning Kernel Parameter dbc_max_pct

Cliff,

As I often reply to such questions, I will go into the whole explication and I'll reference this thread in future replies :)

As you mentionned, default buffer cache settings are set to dbc_max_pct=50 and dbc_min_pct=5. This will make this IO Cache using 5% of your RAM and slowly grow to something near 50% of your RAM, which is far too much if you consider the following points.

HP-UX IO Cache works as a cache must, it stores in its memory the blocks you read the more. It also (to anticipate sequential reads) stores a little bit more info that you asked for, in order to give it faster to you on your next read.

Problems start here : Oracle does a lot of reads. It also stores those most read blocks. And it also stores a little bit more info to prevent sequential reads. So, when you need some data, Oracle will ask OS to read this data and a little more and will cache it. OS will read this "data and little more" and little more and will cache it. So your system will store more than twice the data it needs, and will consume your memory this fast. In case of an app with lots of IO and few RAM, it will make your system start swapping dramaticaly and make your OS unusable (but it's only extreme case).

Solution reside in these points :
. Reduce OS IO Cache by tunning these parameters. If your system is only running Oracle, precedent advice of setting dbc_min_pct and dbc_max_pct to 2 and 4 is good. This will prevent OS cache to grow and will offer opportunity to you to increase Oracle SGA settings.
. If you have Online JFS on your system, make dedicated filesystems for your DB files and mount them with options convosync=direct and mincache=direct. This will bypass the OS cache for this files and will eliminate the problem.

For more info and other points of tunning for Oracle on HP-UX, read this excellent doc :
http://h21007.www2.hp.com/dspp/files/unprotected/database/HP3KOracle.ppt

Regards,

Fred
--

"Reality is just a point of view." (P. K. D.)
Fred Ruffet
Honored Contributor

Re: Tuning Kernel Parameter dbc_max_pct

As a complement to Eric's answer, for versions 9i and upper of Oracle, use db_cache_size parameter to set database blocks buffer.

Regards,

Fred
--

"Reality is just a point of view." (P. K. D.)
Eric Antunes
Honored Contributor

Re: Tuning Kernel Parameter dbc_max_pct

And don't forget to start the house by the foundations and not by the roof ;-) :

- Tune SQL (custumizations, reports, etc...) first! This is where you will see great achievments!
- Tune init.ora: you may change the following parameters from defaults:

processes = 200
sort_area_size = 512000
log_checkpoint_interval = 20000
log_checkpoint_timeout = 3600
log_buffer = 1048576
timed_statistics = true # set this one to collect performance statistics but consider some overhead it will bring...
shared_pool_size = 192M
db_block_buffers = 3000
- Tune Kernel at the end

Eric
Each and every day is a good day to learn.