oracle 成长历程-第三章:内存组件详解-buffer cache-概述及相关术语-2

11、    LRU list 由内部参数_db_block_lru_latches控制, 8i以前,只有一个listcache里。从Oracle8开始,CKPTQ(checkpoint queues) FQ (file queues)被引入。随着异步DBWn引入,list的管理也随之变化。现在正确称呼,应该是working sets,,包含几个不同的LRU lists。每个LRU是受cache buffers lru chain latch,保护的。

12、    LRU Listsworking set

n   每一对LRU/LRUW称为一个working setbuffer通过循环使用的方式分配到这些working set中。在高负载的读取和过多的LRU扫描下,LRU latch可能成为一个瓶颈。此外,LRU latch在多路并发系统中也不好衡量。应为多个CPU可能都会请求单独的LRU latch。通过设置内部参数_DB_BLOCK_LRU_LATCHES,可以改善LRU的竞争情况。每个LRU latch都是一个working set。每个working set拥有自己的链表,管理属于它的buffer。如果一个latch不能访问,那么就会转向下一个,直到获得一个成功的latch。在事件管理中,如果请求latch失败,那么miss就会增加。LRU latch的请求最初是NOWAIT模式,如果在它请求完所有latch都仍然没有成功后,就会变为WAIT模式。

n   进程访问所有的latch直到它获得一个LRU latch。在多个DBWR的环境下,每个DBWR都有自己的LRU/LRUW,通过设置db_writer_processes可以更改DBWR的数目。

13、    Working Sets

n   Working Sets = DBWRs x Maximum number of buffer pools (8).

n   它包含如下list

Ø  LRU

Ø  LRU-W:记录dirty buffer

Ø  LRU-PPing listRAC

Ø  LRU-XO::对象重用list,针对droptruncate

Ø  LUR-XR:块重用list

Ø  Thread CKPT queue:线程CKPT buffer

Ø  File CKPT queue:文件CKPT buffer queue

Ø  Recovery CKPT queue:执行恢复的块

14、    LRUbuckets/chains不同:

n   用于寻找某一指定的hash buckets/chains

n   LRU提供寻找空闲buffer的方法,从list尾部开始找。

n   Buffer header内容可以通过访问X$BH表来访问。

15、    Buffer Get

请求一个buffer,首先会填充一个buffer descriptor,步骤如下:

n   填充一个buffer descriptor

n   指定buffer的占有模式

n   缓存数据块

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

转载于:http://blog.itpub.net/347643/viewspace-619858/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值