[20160517]11G HugePage的使用问题2.txt

[20160517]11G HugePage的使用问题2.txt

--昨天测试了HUGEPAGE的使用问题,自己也看了一些文档,从11.2.0.2,加入了参数use_large_pages.

SYS@book> @ &r/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

SYS@book> show parameter use_large_pages
NAME            TYPE    VALUE
--------------- ------- -------
use_large_pages string  TRUE

如果参数为True,那么当系统的HugePage被使用尽,只有small pages的情况下,SGA也会继续运行。此时,Oracle实例就运行在内存使用
混合模式(Mixed Mode)下。

如果参数为是Only,从含义上,表示Oracle实例只会使用HugePage作为内存使用。如果系统在AMM模式或者HugePage用尽的时候,数据库
就不能启动或者报错。

如果参数为是false,就不使用HugePage.

--使用HugePage好处多多,特别是现在内存大,连接用户多的情况下优势更加明显.

1.先测试use_large_pages=only的情况.

--我采用手工设置,版本11.2.0.4.

SYS@book> show parameter sga_
NAME          TYPE        VALUE
------------- ----------- -------
sga_max_size  big integer 608M
sga_target    big integer 0

SYS@book> show parameter db_cache_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------
db_cache_size                        big integer 408M
SYS@book> show parameter shared_pool_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------
shared_pool_size                     big integer 172M

--关闭数据库,设置vm.nr_hugepages = 200.

SYS@book> startup nomount
ORACLE instance started.
Total System Global Area  634732544 bytes
Fixed Size                  2255792 bytes
Variable Size             197133392 bytes
Database Buffers          427819008 bytes
Redo Buffers                7524352 bytes
SYS@book> alter system set use_large_pages=only scope=spfile ;
System altered.

SYS@book> shutdown immediate ;
ORA-01507: database not mounted
ORACLE instance shut down.

SYS@book> startup
ORA-27137: unable to allocate large pages to create a shared memory segment
Linux-x86_64 Error: 12: Cannot allocate memory
Additional information: 624951296
Additional information: 1

--我设置vm.nr_hugepages=200,也就是400M,不够数据库启动,报错.修改参数回来.

2.测试use_large_pages=true的情况.

SYS@book> create pfile='/tmp/a.ora'  from spfile;
File created.

--删除use_large_pages那行.

SYS@book> create spfile from pfile='/tmp/a.ora' ;
File created.

SYS@book> startup nomount
ORACLE instance started.
Total System Global Area  634732544 bytes
Fixed Size                  2255792 bytes
Variable Size             197133392 bytes
Database Buffers          427819008 bytes
Redo Buffers                7524352 bytes

$ cat /proc/meminfo | grep -i huge
AnonHugePages:     18432 kB
HugePages_Total:     200
HugePages_Free:       99
HugePages_Rsvd:       99
HugePages_Surp:        0
Hugepagesize:       2048 kB

************************ Large Pages Information *******************
Per process system memlock (soft) limit = 51 GB

Total Shared Global Region in Large Pages = 400 MB (65%)

Large Pages used by this instance: 200 (400 MB)
Large Pages unused system wide = 0 (0 KB)
Large Pages configured system wide = 200 (400 MB)
Large Page size = 2048 KB

RECOMMENDATION:
  Total System Global Area size is 610 MB. For optimal performance,
  prior to the next instance restart:
  1. Increase the number of unused large pages by
at least 105 (page size 2048 KB, total size 210 MB) system wide to
  get 100% of the System Global Area allocated with large pages
********************************************************************

--仅仅使用400*65/100=260M,提示增加105就ok了.

3.设置更小vm.nr_hugepages=50看看.
# cat /proc/meminfo  | grep huge -i
AnonHugePages:      8192 kB
HugePages_Total:      50
HugePages_Free:       50
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

SYS@book> startup nomount
ORACLE instance started.
Total System Global Area  634732544 bytes
Fixed Size                  2255792 bytes
Variable Size             197133392 bytes
Database Buffers          427819008 bytes
Redo Buffers                7524352 bytes

$ cat /proc/meminfo | grep -i huge
AnonHugePages:     20480 kB
HugePages_Total:      50
HugePages_Free:       24
HugePages_Rsvd:       24
HugePages_Surp:        0
Hugepagesize:       2048 kB

************************ Large Pages Information *******************
Per process system memlock (soft) limit = 51 GB
Total Shared Global Region in Large Pages = 100 MB (16%)
Large Pages used by this instance: 50 (100 MB)
Large Pages unused system wide = 0 (0 KB)
Large Pages configured system wide = 50 (100 MB)
Large Page size = 2048 KB

RECOMMENDATION:
  Total System Global Area size is 610 MB. For optimal performance,
  prior to the next instance restart:
  1. Increase the number of unused large pages by
at least 255 (page size 2048 KB, total size 510 MB) system wide to
  get 100% of the System Global Area allocated with large pages
********************************************************************

--仅仅使用400*16/100=16M,提示增加255就ok了.

--有了这些提示修改就方便了.修改为vm.nr_hugepages = 305就正好合适.
************************ Large Pages Information *******************
Per process system memlock (soft) limit = 51 GB
Total Shared Global Region in Large Pages = 610 MB (100%)
Large Pages used by this instance: 305 (610 MB)
Large Pages unused system wide = 0 (0 KB)
Large Pages configured system wide = 305 (610 MB)
Large Page size = 2048 KB
********************************************************************

# cat /proc/meminfo  | grep huge -i
AnonHugePages:     26624 kB
HugePages_Total:     305
HugePages_Free:       94
HugePages_Rsvd:       94
HugePages_Surp:        0
Hugepagesize:       2048 kB

--有一些概念还是不清楚,这个的HugePages_Free表示什么,还没用吗?如果在数据库做一些操作HugePages_Free会减少.视乎不受一次分配
--到位的.

# cat /proc/meminfo  | grep huge -i
AnonHugePages:     36864 kB
HugePages_Total:     305
HugePages_Free:       81
HugePages_Rsvd:       81
HugePages_Surp:        0
Hugepagesize:       2048 kB

时间: 2024-09-20 15:01:10

[20160517]11G HugePage的使用问题2.txt的相关文章

[20160516]11G HugePage的使用问题.txt

[20160516]11G HugePage的使用问题.txt --我们的dg内存不足,配置的/etc/sysctl.conf如下: vm.nr_hugepages = 3200 --没有启动数据库前如下: # grep -i huge /proc/meminfo AnonHugePages:     14336 kB HugePages_Total:    3200 HugePages_Free:     3200 HugePages_Rsvd:        0 HugePages_Surp

[20170824]11G备库启用DRCP连接.txt

[20170824]11G备库启用DRCP连接.txt --//参考链接: http://blog.itpub.net/267265/viewspace-2099397/ blogs.oracle.com/database4cn/adg%e5%a4%87%e5%ba%93%e7%9a%84drcp%e8%bf%9e%e6%8e%a5%e6%8a%a5%e9%94%99oci-21500%e8%a7%a3%e5%86%b3%e4%b8%80%e4%be%8b 1.测试环境: SYS@bookdg>

[20170726]11G 12c expand sql text 2.txt

[20170726]11G 12c expand sql text 2.txt --//原来写的脚本只能分别在11g,12c单独使用.上午花一点点时间.把两者整合起来. --//讨论链接:http://www.itpub.net/thread-2088981-1-1.html --//感谢solomon_007的指点,通过建立动态sql语句来实现.链接:http://blog.itpub.net/267265/viewspace-2141010/ --//qqjue给出建立建立类似c的宏来实现C

[20141213]11g ACS的一些问题4.txt

[20141213]11g ACS的一些问题4.txt --11G下Adaptive Cursor Sharing简称ACS能很好的解决绑定变量窥视的带来的问题,前一段时间看了2篇blog https://hourim.wordpress.com/2014/11/06/bind-aware-part-i/ https://hourim.wordpress.com/2014/11/08/bind-aware-part-ii/ --我以前也写过一篇blog,链接如下: http://blog.itp

[20141213]11g ACS的一些问题3.txt

[20141213]11g ACS的一些问题3.txt --11G下Adaptive Cursor Sharing简称ACS能很好的解决绑定变量窥视的带来的问题,前一段时间看了2篇blog https://hourim.wordpress.com/2014/11/06/bind-aware-part-i/ https://hourim.wordpress.com/2014/11/08/bind-aware-part-ii/ --我以前也写过一篇blog,链接如下: http://blog.itp

[20150705]11G表统计信息与PUBLISH.txt

[20150705]11G表统计信息与PUBLISH.txt --11G表统计信息可以先不发布(在PUBLISH参数的控制下),等检测合适再发布. --确实参数optimizer_use_pending_statistics为false,可以在session级别打开为true,检测统计是否有用. SYS@test> @hide optimizer_use_pending_statistics NAME                              DESCRIPTION       

[20150910]11G ADG与延迟日志应用.txt

[20150910]11G ADG与延迟日志应用.txt --11G ADG是一个非常好的特性,它可以一边应用日志,一边提供查询,前一阵子跟别人讨论ADG 是否可以与延迟日志应用结合起来,既 --提供只读查询,又延迟日志应用,自己从来没有测试过,今天测试看看. --实际上一种可能就是在dg上打开flashback,这样在出现问题时闪回到出问题的时间点.但是这个是回滚,而我延迟应用是前进. 1.测试环境: SCOTT@test> @ver BANNER ----------------------

[20150710]11G谓词推入问题2.txt

[20150710]11G谓词推入问题2.txt --生产系统遇到一个sql语句的问题. --生产系统的sql语句比较复杂,做一个简化的例子来说明问题.来说明自己优化遇到的困惑. --昨天看来别人的回复,加提示 /*+ push_pred(v_tallx)*/,无效.实际上如果仔细看我的帖子 --http://blog.itpub.net/267265/viewspace-1724554/, 可以发现T2表的id是字符类型,存在隐式转换,虽然我定义了函数索引,视乎 --对于这种情况谓词推入存在问

[20141116]11g ACS的一些问题1.txt

[20141116]11g ACS的一些问题1.txt --11G下Adaptive Cursor Sharing简称ACS能很好的解决绑定变量窥视的带来的问题,昨天看了2篇blog https://hourim.wordpress.com/2014/11/06/bind-aware-part-i/ https://hourim.wordpress.com/2014/11/08/bind-aware-part-ii/ --我以前也写过一篇blog,链接如下: http://blog.itpub.