zoukankan      html  css  js  c++  java
  • 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错误。

  • 相关阅读:
    8.10
    今日头条笔试题 1~n的每个数,按字典序排完序后,第m个数是什么?
    Gym 100500B Conference Room(最小表示法,哈希)
    CodeForces 438D The Child and Sequence(线段树)
    UVALIVE 6905 Two Yachts(最小费用最大流)
    Gym Conference Room (最小表示法,哈希)
    hdu 2389 Rain on your Parade(二分图HK算法)
    Codeforces Fox And Dinner(最大流)
    zoj 3367 Counterfeit Money(dp)
    ZOJ3370. Radio Waves(2-sat)
  • 原文地址:https://www.cnblogs.com/future2012lg/p/4921991.html
Copyright © 2011-2022 走看看