ITPub博客

首页 > 数据库 > Oracle > [20221212]关于pre_page_sga参数的问题.txt

[20221212]关于pre_page_sga参数的问题.txt

原创 Oracle 作者:lfree 时间:2022-12-12 11:19:37 0 删除 编辑

[20221212]关于pre_page_sga参数的问题.txt

--//别人遇到的问题,无法演示链接http://blog.itpub.net/267265/viewspace-2133260/=>[20170209]理解pre_page_sga参数.txt
--//我当时的测试设置pre_page_sga=true的情况,HugePages_Rsvd是0.
--//我看了一下实际上是对方sga_target设置问题导致的.通过例子说明:

1.环境:

$ cat initxxxx.ora
db_name=xxxx
instance_name=xxxx
sga_target=0G
sga_max_size=50G
shared_pool_size=2G
pre_page_sga=true
--//注意设置sga_target=0G

# grep "^vm.nr" /etc/sysctl.conf
vm.nr_hugepages = 26000
vm.nr_overcommit_hugepages = 1300

# sysctl -p
# sysctl vm.nr_hugepages
vm.nr_hugepages = 26000

# grep "^oracle" /etc/cur': grep "^oracle" /etc/security/limits.conf | grep memlock
oracle   soft  memlock  unlimited
oracle   hard  memlock  unlimited

$ egrep "Max locked memory|Limit" /proc/self/limits
Limit                     Soft Limit           Hard Limit           Units
Max locked memory         unlimited            unlimited            bytes

2.测试:
--//测试前:
# grep -i pages /proc/meminfo
AnonPages:        226424 kB
AnonHugePages:     57344 kB
HugePages_Total:   26000
HugePages_Free:    26000
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
--//没有任何程序使用hugepages.

$ export ORACLE_SID=xxxx
SYS@xxxx> startup  nomount
ORACLE instance started.

Total System Global Area 5.3447E+10 bytes
Fixed Size                  2265864 bytes
Variable Size            5.3284E+10 bytes
Database Buffers          134217728 bytes
Redo Buffers               26480640 bytes

# grep -i pages /proc/meminfo
AnonPages:        286296 kB
AnonHugePages:     69632 kB
HugePages_Total:   26000
HugePages_Free:    24601
HugePages_Rsvd:    24202
HugePages_Surp:        0
Hugepagesize:       2048 kB

--//可以发现当前仅仅使用了26000-24601 = 1399 ,相当于现在sga_target=1399 * 2M .
--//该实例如果全部使用应该是 26000-24601+24202 = 25601,相当于 50G+2M.

3.继续:
$ cat initxxxx.ora
db_name=xxxx
instance_name=xxxx
sga_target=50G
sga_max_size=50G
shared_pool_size=2G
pre_page_sga=true
--//注意设置sga_target=50G

--//关闭数据库实例xxxx.
--//测试前:
# grep -i pages /proc/meminfo
AnonPages:        217752 kB
AnonHugePages:     59392 kB
HugePages_Total:   26000
HugePages_Free:    26000
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

--//启动数据库实例xxxx.实际上这样启动比前面的启动慢许多.
--//启动实例后:
# grep -i pages /proc/meminfo
AnonPages:        286328 kB
AnonHugePages:     69632 kB
HugePages_Total:   26000
HugePages_Free:      473
HugePages_Rsvd:       74
HugePages_Surp:        0
Hugepagesize:       2048 kB
--//我不知道为什么HugePages_Rsvd=74.
--//我测试前以为HugePages_Free=399,HugePages_Rsvd=0.
--//还是可以说明pre_page_sga=true的情况加载大部分sga到内存的hugepages中.

$ ipcs

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x00000000 68288514   oracle    640        268435456  18
0x00000000 68321283   oracle    640        53418655744 18
0x4fc32208 68354052   oracle    640        2097152    18

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x7e7c81d8 63602688   oracle    640        1004

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages

--//(268435456  + 53418655744 + 2097152   )/2048/1024 = 25601

--//alert记录如下:
************************ Large Pages Information *******************
Per process system memlock (soft) limit = UNLIMITED

Total Shared Global Region in Large Pages = 50 GB (100%)

Large Pages used by this instance: 25601 (50 GB)
Large Pages unused system wide = 399 (798 MB)
Large Pages configured system wide = 26000 (51 GB)
Large Page size = 2048 KB
********************************************************************

4.后记:
--//顺便提一下采用hugepages是大势所趋,现在服务器配置内存都很高.而且12c开始pre_page_sga缺省设置就是true.
--//还采用原来的方式会导致PageTables消耗很大的内存.
--//另外注意一点如果设置vm.nr_hugepages 很大,会导致内存的大量浪费,比sga_max_size大一点点就ok了.
--//测试完成修改/etc/sysctl.conf里面的vm.nr_hugepages参数略.

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

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

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970344