视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
buffercache实验10-buffercache优化指标
2020-11-09 07:34:30 责编:小采
文档


标题起的有点大,不同情况的解决内容其实在前面每一小篇里都有了,没重复粘贴了。 1.buffer cache的大小: 如16CPU,32G内存: 初步分配: SGA_TARGET=16G --内存一半 BUFFER CACHE=12G ---SGA的40%起,可设置到70%-80%--保守点也可以设置到10G,后期可以根据

标题起的有点大,不同情况的解决内容其实在前面每一小篇里都有了,没重复粘贴了。

1.buffer cache的大小:

如16CPU,32G内存:
初步分配:
SGA_TARGET=16G --内存一半
BUFFER CACHE=12G ---SGA的40%起,可设置到70%-80%--保守点也可以设置到10G,后期可以根据系统运行情况结合buffer pool advisory进行修改。
shared_pool=3G

当参数:statistics_level为typical 或者all;或者db_cache_advice参数设置为ON,ORACLE会根据系统负载,自动估算出当前实例的buffer cache最佳大小 --通过v$db_cache_advice;或者ASR报告中:buffer pool advisory一栏。之后可以根据建议大小结合当前系统内存使用情况设置一个合理值。
以下为我虚拟机中环境数据:--SIZE_FOR_ESTIMATE单位为M,系统当前BUFFER_CACHE大小为32M。
SYS@ bys3>select SIZE_FOR_ESTIMATE,BUFFERS_FOR_ESTIMATE,ESTD_PHYSICAL_READ_FACTOR,ESTD_PHYSICAL_READS from v$db_cache_advice;
SIZE_FOR_ESTIMATE BUFFERS_FOR_ESTIMATE ESTD_PHYSICAL_READ_FACTOR ESTD_PHYSICAL_READS
----------------- -------------------- ------------------------- -------------------
4 496 2.4576 527548
8 992 2.3653 507728
12 1488 2.2055 473442
16 1984 1.887 405072
20 2480 1.3526 290349
24 2976 1.1332 243258
28 3472 1.0613 227818
32 3968 1 214661
36 44 .9342 200530
40 4960 .8871 190428
44 5456 .7987 171447
48 5952 .7203 154614
52 48 .66 141675
56 6944 .6248 134123
60 7440 .5859 125766
7936 .5529 118684
从此视图可以看到:系统当前BUFFER_CACHE大小为32M,ESTD_PHYSICAL_READS字段是物理读的块数,ESTD_PHYSICAL_READ_FACTOR字段是物理读/逻辑读的比值,越小越好。
可以看到,BUFFER_CACHE越大,物理读块数越少,物理读/逻辑读的比值越小,所以我这实验环境是要增大BUFFER_CACHE的。可以先增加到M,然后运行一段时间,再继续结合v$db_cache_advice视图,最终设置一个最优值。

2.buffer cache的命中率

命中率高意味着服务器进程基本上都是从 buffer cache中获取数据块。
但是有的情况下命中率并不能说明性能问题,
如大表全表扫描时buffer cache命中率会下降;
热块问题严重时,虽然buffer cache命中率是100%,性能却不佳;
执行计划出错,所涉及的数据块都在buffer cache中,命中率100%,性能不佳;

3.buffer cache的争用

主要指标是:free buffer waits/buffer busy waits
原因主要也就是:
free buffer waits-找不到空闲 buffer--buffer cache空间不足
buffer busy waits--热块争用

其实在前面的等待事件的博文中,也已经提到过详细解决思路,这里不重新贴了。

下载本文
显示全文
专题