Oracle Database Memory Management
名词
全称
管什么
怎么开
AMM
Automatic Memory Management
SGA + PGA 一起自动调
设 MEMORY_TARGET
ASMM
Automatic Shared Memory Management
只自动调 SGA 内部组件,PGA 单列
设 SGA_TARGET + PGA_AGGREGATE_TARGET
HugePages
Linux 大页内存
用 2MB 大页替代 4KB 小页,减少 TLB miss
系统级 vm.nr_hugepages
AMM 与 HugePages 不兼容。生产环境(尤其 Linux),选 ASMM + HugePages,别用 AMM。
Automatic Memory Management (AMM)
Automatic Shared Memory Management (ASMM)
SELECT name, value / 1024 / 1024 / 1024 AS gbFROM v$parameter WHERE name IN ('memory_target' , 'memory_max_target' ,'sga_target' , 'pga_aggregate_target' , 'sga_max_size' );SELECT component, ROUND(current_size/ 1024 / 1024 / 1024 , 2 ) AS cur_gb, ROUND(max_size/ 1024 / 1024 / 1024 , 2 ) AS max_gb FROM v$memory_dynamic_componentsWHERE current_size > 0 ;ALTER SYSTEM SET sga_max_size= 24 G SCOPE = SPFILE;ALTER SYSTEM SET sga_target= 24 G SCOPE = SPFILE;ALTER SYSTEM SET pga_aggregate_target= 8 G SCOPE = SPFILE;ALTER SYSTEM SET memory_target= 0 SCOPE = SPFILE;SELECT component, ROUND(current_size/ 1024 / 1024 / 1024 , 2 ) AS gbFROM v$sga_dynamic_componentsWHERE current_size > 0 ORDER BY gb DESC ;SELECT name, value FROM v$sysstat WHERE name LIKE 'workarea executions%' ;
HugePages
SQL > SHOW PARAMETER use_large_pages;
值
含义
TRUE(默认)
能用大页就用,用不了静默退回小页(就是你 "配了个寂寞" 的模式)
FALSE
彻底不用大页
ONLY
必须用大页,没有就启动失败(测试利器:一验便知大页到底通没通)
Check the hugepages.
~]# sysctl -a 2>/dev/null | grep "vm.nr_hugepages" vm.nr_hugepages = 3584 vm.nr_hugepages_mempolicy = 3584 ~]# grep HugePages /proc/meminfo AnonHugePages: 0 kB HugePages_Total: 3584 HugePages_Free: 1799 HugePages_Rsvd: 0 HugePages_Surp: 0
Check the max locked memory.
~]# find /etc/security/limits.* -type f -exec grep memlock {} \; grid hard memlock 10869992 grid soft memlock 10869992 oracle hard memlock 10869992 oracle soft memlock 10869992 ~]$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 47225 max locked memory (kbytes, -l) 10869992 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 2047 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited ~]$ ulimit -l 10869992
Reference
・ How to Setting Oracle Huagepages Parameters