ITPub博客

首页 > 数据库 > Oracle > [20191211]Free SGA Memory Available.txt

[20191211]Free SGA Memory Available.txt

原创 Oracle 作者:lfree 时间:2019-12-11 11:02:52 0 删除 编辑

[20191211]Free SGA Memory Available.txt

--//自己从来没有使用AMM方式管理数据库,今天调优数据库发现自己不注意的一个细节.

1.环境:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> select * from v$sgainfo;
NAME                                            BYTES RES
---------------------------------------- ------------ ---
Fixed SGA Size                                2270192 No
Redo Buffers                                 46850048 No
Buffer Cache Size                         16508780544 Yes
Shared Pool Size                           2885681152 Yes
Large Pool Size                             402653184 Yes
Java Pool Size                              402653184 Yes
Streams Pool Size                                   0 Yes
Shared IO Pool Size                                 0 Yes
Granule Size                                 67108864 No
Maximum SGA Size                          33939099648 No
Startup overhead in Shared Pool            1288055296 No
Free SGA Memory Available                 13690208256
12 rows selected.

--//我开始以为出了什么问题.Free SGA Memory Available=13690208256.
--//仔细想想AMM管理方式引起看到的现象.做1个记录.

2.其它参数定义如下:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> show parameter memory
NAME                     TYPE        VALUE
------------------------ ----------- -------
hi_shared_memory_address integer     0
memory_max_target        big integer 32512M
memory_target            big integer 32512M
shared_memory_address    integer     0

xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> show parameter pga
NAME                 TYPE        VALUE
-------------------- ----------- -----
pga_aggregate_target big integer 0
--//你也可以定义pga_aggregate_target值,这样就是定义最小值.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> @ hide __pga_aggregate_target
NAME                   DESCRIPTION                                               DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE ISSES ISSYS_MOD
---------------------- --------------------------------------------------------- ------------- ------------- ------------ ----- ---------
__pga_aggregate_target Current target size for the aggregate PGA memory consumed TRUE          13690208256   13690208256  FALSE IMMEDIATE

--//__pga_aggregate_target大小等于Free SGA Memory Available.

#  du -mc /dev/shm/*bills1* | tail -1
18091   total

*/

--//可以发现实例仅仅占18091M.与前面看到的还是符合的.现在感觉AMM方式并不是很好,实际上AMM完全限制整个应用使用的内存大小.
--//如果PGA需求很大,自然会挤压其它组件内存的使用.反而很难达到一个很好的管理控制.
--//而且最重要一点无法使用hugepages,实际上目前的情况是PGA无法定义成hugepages,估计oracle也不会实现这样的功能.

--//而且上线后转换有时候留给运维的时间窗口很小,而且有1个坑,就是必须清除memory_max_target,memory_target.而不是设置成0.
--//这样反而起不来.链接:http://blog.itpub.net/267265/viewspace-2151023/=>[20180211]11g关闭AMM.txt.


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

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2594
  • 访问量
    6370105