ITPub博客

首页 > IT基础架构 > 网络安全 > 内存调整之BufferCache篇

内存调整之BufferCache篇

原创 网络安全 作者:zildjianzhang 时间:2007-07-18 10:11:18 0 删除 编辑

Buffer Cache是缓存从磁盘中读取的信息的,使得Oracle需要的信息能够在内存中找到从而避免了代价昂贵的磁盘I/O。为了实现这个目标,原则上就需要尽量确保访问频率高的信息在buffer中而不被那些很少用到的或是只有一小部分有用而却占用了大量内存的内容冲掉。而且,Buffer Cache的大小也匹配于上面描述的需求的。

为了满足上面提到的原则,就不得不了解下Oracle Buffer Cache的管理机制。BufferCache中的内存由WriteList(写链表)和Least Recent Used List(最近最少使用链表)组成。前者包含那些还没有被写道磁盘上的脏缓存,后者包括空闲缓冲区,目前正在使用的Pinned Buffer和尚未移到谢链表中的脏缓存。当Oracle访问了BufferCache中的数据,则这些数据被标识在LRU的Most Recent Used端。以避免被从BufferCache中冲掉。当Oracle需要空闲缓存时,它将从LRU的LRU端开始寻找。在找寻过程中,如发现了脏缓存,则把它移到写链表中。如搜寻超过了阀值规定允许查找的限制而仍未找到空闲缓冲时,则停止搜索,启动DBW0进程将一些脏缓冲写到磁盘上。

在执行中,有一个特性不能忽略,那就是当用户执行全表扫描的操作时,所产生的数据缓冲不会放在LRU链表的MRU端,而是放在LRU端。这是因为Oracle认为全表扫描得到的数据在以后被重用的机会很少,应尽快使其失效已被清出缓冲区,为其他更常用的数据提供空间。当然,如果用户确认这些数据是需要保留的,则可以通过表级别的声明将扫描的数据放在LRU链表的MRU端或者放在KEEP池中以获得很好的保护。前者是通过显式指定CACHE来实现,后者则通过Storage(BUFFER_POOL Keep)来实现。

一般情况下,默认的BufferCache足以应付普通的应用。如果对应用有特殊的需求且了解这些应用的特性,可以通过将特定应用获取的数据缓存在KEEP POOL中。顾名思义,KEEP池的作用是将最经常使用的表缓存到这个单独的缓冲区中,以保证访问这些最常用的表的数据时,都可以从内存中直接获的。相对应的,Recycle池则用来缓存那些不希望保存在内存中的表,如很少进行扫描或访问的表。

在Buffer Cache的调整中,有两个指标是比较重要的,那就是Physical Read Factor和Buffer Cache Hit Ratio。前者是物理读(磁盘操作)的指标,后者是buffer cache命中率的指标。基本的目标是尽量减小物理读取,而提高命中率。buffer cache size和这二者并没有强烈的因果依赖关系,一个较低的命中率并非一定是buffer cache 过小造成的。换言之,简单的增加buffer cache size并不见得可以提高命中率。类似的,一个较高的命中率也不代表buffer cache size的设置是足够的。

方法如下——>

[@more@]

通过设置不同的BufferCache size来估算物理读程度方法如下:

SELECT size_for_estimate, buffers_for_estimate, estd_physical_read_factor, estd_physical_reads
FROM V$DB_CACHE_ADVICE
WHERE name = 'DEFAULT'
AND block_size = (SELECT value FROM V$PARAMETER WHERE name = 'db_block_size')
AND advice_status = 'ON';

命中率的计算公式:

1 - (('physical reads cache') / ('consistent gets from cache' + 'db block gets from cache')

其中所取得参数值可从V$SYSSTAT动态性能视图中获得:SELECT NAME, VALUE
FROM V$SYSSTAT
WHERE NAME IN ('db block gets from cache', 'consistent gets from cache', 'physical
reads cache');

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/404722/viewspace-926930/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    15
  • 访问量
    206101