• SHARED_POOL_RESERVED_SIZE参数的设置及作用 -ZHUANZAI


    还有一个参数是需要提及的:shared_pool_reserved_size。该参数指定了保留的共享池空间,用于满足将来的大的连续的共享池空间请求。当共享池出现过多碎片,请求大块空间会导致Oracle大范围的查找并释放共享池内存来满足请求,由此可能会带来较为严重的性能下降,设置合适的shared_pool_reserved_size参数,结合_shared_pool_reserved_min_alloc参数可以用来避免由此导致的性能下降。

    这个参数理想值应该大到足以满足任何对RESERVED LIST的内存请求,而无需数据库从共享池中刷新对象。这个参数的缺省值是shared_pool_size的5%,通常这个参数的建议值为shared_pool_size参数的10%~20%大小,最大不得超过shared_pool_size的50%

    同样地,在trace文件中,可以找到关于保留列表(RESERVED LIST)的内存信息:

    RESERVED FREE LISTS:
    Reserved bucket 0 size=16
    Reserved bucket 1 size=4400
    Reserved bucket 2 size=8204
    Reserved bucket 3 size=8460
    Reserved bucket 4 size=8464
    Reserved bucket 5 size=8468
    Reserved bucket 6 size=8472
    Reserved bucket 7 size=9296
    Reserved bucket 8 size=9300
    Reserved bucket 9 size=12320
    Reserved bucket 10 size=12324
    Reserved bucket 11 size=16396
    Reserved bucket 12 size=32780
    Reserved bucket 13 size=65548
      Chunk 41000050 sz=   212888  R-free      "               "
      Chunk 41400050 sz=   212888  R-free      "               "
      Chunk 41800050 sz=   212888  R-free      "               "
      Chunk 41c00050 sz=   212888  R-free      "               "
      Chunk 42000050 sz=   212888  R-free      "               "
      Chunk 42400050 sz=   212888  R-free      "               "
      Chunk 42800050 sz=   212888  R-free      "               "
      Chunk 42c00050 sz=   212888  R-free      "               "
      Chunk 43000050 sz=   212888  R-free      "               "
      Chunk 43400050 sz=   212888  R-free      "               "
      Chunk 43800050 sz=   212888  R-free      "               "
      Chunk 44000050 sz=   212888  R-free      "               "
    Total reserved free space   =  2554656

    _shared_pool_reserved_min_alloc这个参数的值控制保留内存的使用和分配。如果一个足够尺寸的大块内存请求在共享池空闲列表(FREE LIST)中没能找到,内存就从保留列表(RESERVED LIST)中分配一块比这个值大的空间。

    在不同的版本中,该参数的缺省值一直都是4400,以下输出来自Oracle 11gR1版本:

    sys@CCDB> @GetHidPar
    Enter value for par: shared_pool_reserved_min_alloc
    old   4: AND x.ksppinm LIKE '%&par%'
    new   4: AND x.ksppinm LIKE '%shared_pool_reserved_min_alloc%'
    NAME                                VALUE      DESCRIB
    ----------------------------------- ---------- ----------------------------------------------------------------------
    _shared_pool_reserved_min_alloc     4400       minimum allocation size in bytes for reserved area of shared pool

    这个参数默认的值对于大多数系统来说都足够了。如果系统经常出现ORA-04031错误都是请求大于4400的内存块,那么就可能需要增加shared_pool_reserved_size参数设置。

    而如果主要的引发LRU合并、老化并出现ORA-04031错误的内存请求在4100~4400bytes之间,那么降低_shared_pool_reserved_min_alloc同时适当增大SHARED_POOL_RESERVED_SIZE参数值通常会有所帮助。设置_shared_pool_reserved_min_alloc=4100可以增加Shared Pool成功满足请求的概率。需要注意的是,这个参数的修改应对结合Shared Pool Size 和 Shared Pool Reserved Size的修改。设置_shared_pool_reserved_min_alloc=4100是经过证明的可靠方式,不建议设置更低。

    查询v$shared_pool_reserved视图可以用于判断共享池问题的引发原因,以下查询来自一个业务系统,注意系统出现过2次的请求失败,最后一次请求的内存块大小是3896 Bytes。由于这个环境没有报ORA-04031错误,所以不对_shared_pool_reserved_min_alloc参数进行修改。

    winks@CCDB> select free_space,avg_free_size,used_space,avg_used_size,request_failures,last_failure_size
      2  from v$shared_pool_reserved;

    FREE_SPACE AVG_FREE_SIZE USED_SPACE AVG_USED_SIZE REQUEST_FAILURES LAST_FAILURE_SIZE
    ---------- ------------- ---------- ------------- ---------------- -----------------
      44406648    727977.836      86640    1420.32787                2              3896

    如果request_failures > 0 并且 last_failure_size > _shared_pool_reserved_min_alloc,那么ORA-04031错误就可能是因为共享池保留空间缺少连续空间所致。要解决这个问题,可以考虑加大_shared_pool_reserved_min_alloc来降低缓冲进共享池保留空间的对象数目,并增大shared_pool_reserved_size 和 shared_pool_size来加大共享池保留空间的可用内存。

    如果request_failures > 0 并且 last_failure_size < _shared_pool_reserved_min_alloc,那么是因为在库高速缓冲缺少连续空间导致ORA-04031错误。

  • 相关阅读:
    ui、li模拟下拉框
    六项精进
    Echarts柱状图添加点击事件
    [UWP]爱恋动漫BT开发小记
    [杂谈]这个四月
    [uwp]自定义图形裁切控件
    [uwp]自定义Behavior之随意拖动
    [uwp]数据绑定再学习
    [mvc]记一次“项目”的历程
    [uwp]ImageSource和byte[]相互转换
  • 原文地址:https://www.cnblogs.com/future2012lg/p/4921991.html
Copyright © 2020-2023  润新知