If sooracleConfiguration of large memory, restartoracleExamples can be found inalterWatch in the alarm log to see if instances use large memory, but whether there are other ways to determine whether a process uses large memory. Here’s howoracleAn example is given to show how to know from the system side whether the process uses large memory.
For example, Oracle SGA is configured as 200G:
SQL> show parameter sga
sga_target big integer 200G
System Configuration Large Memory:
% cat /etc/sysctl.conf
vm.nr_hugepages = 110080
vm.hugetlb_shm_group = 5001
Current large memory usage:(110080-7166)*2/1024=201G。
% grep HugePages_ /proc/meminfo
HugePages_Total: 110080
HugePages_Free: 7166
HugePages_Rsvd: 0
HugePages_Surp: 0
The system has the following database, and the process is as follows:
% ps -ef|grep pmon_
grid 111896 1 0 Jan14 ? 00:00:34 asm_pmon_+ASM1
oracle 114732 1 0 Jan14 ? 00:00:54 ora_pmon_db1
grid 248262 1 0 Jan14 ? 00:00:18 mdb_pmon_-MGMTDB
Then, we can use the following commands or the large memory used by the process:
# The db1 instance uses 200G large memory:
% grep -B 11 'KernelPageSize: 2048 kB' /proc/114732/smaps \
| grep "^Size:" | awk 'BEGIN{sum=0}{sum+=$2}END{print "gb: "sum/1024/1024}'
gb: 200.002
# The MGMTDB instance uses 1G large memory:
% grep -B 11 'KernelPageSize: 2048 kB' /proc/248262/smaps \
| grep "^Size:" | awk 'BEGIN{sum=0}{sum+=$2}END{print "gb: "sum/1024/1024}'
gb: 1.00195