- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- buffer cache and I/O
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 12:05 AM
09-28-2005 12:05 AM
I checked the buffer cache hit and it's 52%. I understand that the cache hit % should be above 90% on a nice and healthy system.
dbc max is 8 and min is 5, which I understand are the kernel defaults, so these need to be changed in some way since I have read that the default for these parameters is not suitable on high RAM systems.
My question is what should I reduce these values to? I understand that the sweet spot for Oracle is 300MB, but that between 700 and 900 is OK. If dbc_max_pct is 8, does that mean the maximum buffer cache could be 2.88GB? Which is far too high?
Secondly will getting the buffer cache down to a reasonable size affect I/O in any way (i.e for better or worse).
If this is of any use: total memory usage is constantly between 92-96%, with system at 12% and user the remainder.
Thanks!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 12:13 AM
09-28-2005 12:13 AM
Re: buffer cache and I/O
5% of 36GB is 1.8GB seems quite big to me for buffer cache
On HPUX 11.0 we fixed it to ~300Mb. I believe this should be higher with HPUX 11i
Which version of OS do you run ?
Do you have OnlineJFS ? how do you mount the Oracle database fs (unless you use raw) ?
Do you have (Oracle) statspack reports ?
Regards
Jean-Luc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 12:14 AM
09-28-2005 12:14 AM
Re: buffer cache and I/O
dbc_max_pct 5 - 5
dbc_min_pct 5 - 5
Regards,
SK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 12:17 AM
09-28-2005 12:17 AM
Re: buffer cache and I/O
find attached the HP-UX Performance Cookbook (in case you don't have it).
Regards
Jean-Luc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 12:30 AM
09-28-2005 12:30 AM
Re: buffer cache and I/O
you can certainly bring it down. min 2% - high 5 % would suffice. (I personally never set it over 800Mb)
Again monitoe usage with sar -b 2 5 and check 5 write cache rate. Should be around 90 % or more.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 12:47 AM
09-28-2005 12:47 AM
Re: buffer cache and I/O
Pls find the attached document which covers about the miscofigured parameters..It has chapeter on Buffer cache.
Hope this helps.
Regards
CS
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 12:48 AM
09-28-2005 12:48 AM
SolutionI think you could lower your buffer cache to perhaps 3-5% (min-max). More importantly, leverage *by-passing* double buffering since Oracle, by design, does its own buffering. Make sure that your filesystems (assuming that you are them) are mounted with optimail VxFS (JFS) options: delaylog, nodetainlog, mincache=direct & convosync=direct.
Regards!
...JRF...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 01:07 AM
09-28-2005 01:07 AM
Re: buffer cache and I/O
That said, with 36GB of ram - you don't need 2.8GB of cache...
I like the 500-800 MB of cache range,,,
I would set top 2 for both dbc_max_pct and dbc_min_pct.
If you are running 11iv2 - changes are dynamic - anything earlier - requires a reboot.
Rgds...Geoff
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 01:15 AM
09-28-2005 01:15 AM
Re: buffer cache and I/O
From Oracle perspective (since you already have HP-UX perspective):
- check this:
select (bbc.total_waits*100/(cg.value+dbg.value)) "Buff busy ratio ind. < 0,007"
from v$system_event bbc,
v$sysstat cg, v$sysstat dbg
where bbc.event='buffer busy waits'
and cg.name ='consistent gets'
and dbg.name='db block gets'
select round(((1-(sum(decode(name, 'physical reads', value,0)) /
(sum(decode(name,'db block gets', value,0))+
(sum(decode(name, 'consistent gets', value, 0))))))*100),2)
|| '%' "Buffer Cache Hit Ratio > 90%"
from v$sysstat;
- what are your db_block_size, db_block_buffers, log_checkpoint_interval (should be twice redolog size) and log_checkpoint_timeout?
- Use a different tablespace for indexes and tables for each module of the application
- avoid fragmentation of tablespaces:
See the fragmentation in Oracle Tablespace Manager or trought this query:
select file_id, block_id, blocks,
owner||'.'||segment_name "Name"
from sys.dba_extents
where tablespace_name = upper(:p_tablespace_name)
UNION
select file_id, block_id, blocks,
'Free'
from sys.dba_free_space
where tablespace_name = upper(:p_tablespace_name)
order by 1,2,3
Rebuild the highly fragmented indexes:
alter index
storage( initial
PS: if you don't have Online JFS use options delaylog, nodatainlog for data logical volumes and delaylog,datainlog for binaries.
Best Regards,
Eric Antunes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 01:17 AM
09-28-2005 01:17 AM
Re: buffer cache and I/O
I am running 11i V1.
I will reduce the max and min, perhaps to 3 initially and then to 2.
James - thanks for those mount options, I read the man page for mount_vxfs but it's not exactly easy to understand, can you tell me what the mincache and convosync options do when set to direct? Does it somehow cause reads/writes to bypass the buffer cache altogether, in which case is that safe?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 02:10 AM
09-28-2005 02:10 AM
Re: buffer cache and I/O
part of the answer is in the document attached in previous post.
also from HP3KOracle (Sandy Gruver
Senior Technical Consultant HP/Oracle Advanced Technology Center ):
===========================================
To gain the most performance from the JFS file system, the Online JFS product should also be implemented. This will allow the use of enhanced mount options that optimize the interaction of Oracle and HP-UX. These options include:
delaylog â this option allows the file system to delay the writing on non-critical information to the JFS intent log. This improves the performance of the file system by allowing some I/O operations to return before this information is put into the intent log on the disk. An example would be when an I/O operation only entails changing the timestamp on the file. In this case, the contents and structure of the file would not be compromised if a crash were to occur before the intent log information made it to the disk.
nodatainlog â Oracle always uses O_SYNC writes, this option will avoid JFS writing the data to the intent log as well as the file.
mincache=direct â The default read operation for JFS copies data from disk to the HP-UX buffer cache, and then copies data to the Oracle SGA. Setting this mount options causes the data to be moved directly into the Oracle SGA; this may provide a minor improvement in the performance for non-sequential read operations. In 8.x versions of Oracle, this mount option will cause unnecessary physical I/O for sequential I/Os. This mount option should NOT BE USED with Oracle 8.x tablespace files, however it is recommended for Oracle 8.x redo and archive file systems.
convosync=direct â This option changes the behavior of files opened with the Osync flag enable, which Oracle always uses. This will enable Osync I/O operations to operate the same as non-osync file operations and thus use the mincache=direct mount option. In 8.x versions of Oracle, this mount option will cause unnecessary physical I/O for sequential I/Os. This mount option should NOT BE USED with Oracle 8.x tablespace files, however it is recommended for Oracle 8.x redo and archive file systems.
=============================================
I suppose it means you mus know if your data access os mosttly random or sequential to choose the right parameter.
Regards
Jean-Luc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 02:16 AM
09-28-2005 02:16 AM
Re: buffer cache and I/O
check Metalink doc id 10668.996 (forum thread) : Mount file system using -o mincache=direct option
Regards
Jean-Luc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 02:43 AM
09-28-2005 02:43 AM
Re: buffer cache and I/O
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 02:57 AM
09-28-2005 02:57 AM
Re: buffer cache and I/O
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=193104
Regards
Jean-Luc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 04:02 AM
09-28-2005 04:02 AM
Re: buffer cache and I/O
Hi Clay - after what you said I had a look a the pageout rate from my historical MWA data.
Most of the time it is 0.
However during periods of the day lasting not more than 10 minutes the pageout rate rockets to between 2000 and 20000. This may occur about 8 times, but not more than 10.
Should I throw more memory at the system?
I'm a bit reluctant since if I tie it in with logical and physical IO rate then the moment at which the system is paging out, the those I/O rates don't really increase noticeably.
Hence I am thinking the I/O problem is not related to paging.
Fundamentally the problem is that we have had a whole new load of users to SAP which may or may not being using the disk more - and I initially wanted to know if decreasing the buffer cache from 2.8GB to around at least 1GB is going to result in better I/O performance because the disk would be visited less.
What do you think?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 04:08 AM
09-28-2005 04:08 AM
Re: buffer cache and I/O
Best Regards,
Eric Antunes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 04:12 AM
09-28-2005 04:12 AM
Re: buffer cache and I/O
Do you have RAW devices? If no, are the DBA's trying to use async_io??
Best Regards,
Eric Antunes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 04:19 AM
09-28-2005 04:19 AM
Re: buffer cache and I/O
No all the datafiles are located on VxFS filesystems.
Not sure if they are using async_io - should they be? If not, why? (so I can go and tell them to check and possibly change)
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 04:25 AM
09-28-2005 04:25 AM
Re: buffer cache and I/O
must have the init
There is a metalink note or bug about that but I don't remember the number...
Best Regards,
Eric Antunes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 04:27 AM
09-28-2005 04:27 AM
Re: buffer cache and I/O
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 04:29 AM
09-28-2005 04:29 AM
Re: buffer cache and I/O
Regards
Jean-Luc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2005 04:31 AM
09-28-2005 04:31 AM
Re: buffer cache and I/O
See also this previous thread: http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=836925
Eric
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-29-2005 12:52 AM
09-29-2005 12:52 AM
Re: buffer cache and I/O
James Ferguson gave you the answer for Oracle on filesystems. You need to disable those filesystems that contain oracle datafiles from using OS buffer cache at all. This is done with the convosync and mincache directives in fstab. Once we enabled these some time back we saw performance improvement. An example:
/dev/vx/dsk/vxconv/convdata /database/conv2data vxfs mincache=direct,convosync=direct,delaylog,suid 0 3
The above all being one line of course.
The reason this helps is that Oracle has its own buffering mechanism using its SGA. If you don't disable OS buffer cache for Oracle filesystems then it tries to double buffer so that the OS buffering is actually impeding the Oracle buffering.
Note that you should only do this for the filesystems that contain datafiles (databases, redologs etc...) but not the ones that contain regular files (archive logs, Oracle binaries/executables).