如果oracle配置了大量内存,重启oracle实例,在alteralarmlog中查看实例是否占用大量内存,但是还有其他方法可以确定进程是否使用大量内存吗?关于内存,下面以oracle为例,说明如何从系统端知道进程是否使用大内存。例如oraclesga配置为200G:SQL>showparametersgasga_targetbiginteger200Gsystemconfigurationlargememorystatus:%cat/etc/sysctl.confvm.nr_hugepages=110080vm.hugetlb_shm_group=5001currentlargememoryusage:(110080-7166)*2/1024=201G。%grepHugePages_/proc/meminfoHugePages_Total:110080HugePages_Free:7166HugePages_Rsvd:0HugePages_Surp:0系统有如下数据库,进程如下所示:%ps-ef|greppmon_grid11189610Jan14?00:00:34asm_pmon_+ASM1oracle11473210Jan14?00:00:54ora_pmon_db1grid24826210Jan14?00:00:18mdb_pmon_-MGMTDB然后,我们可以使用以下命令或者进程使用的大内存:#db1实例使用200G大内存:%grep-B11'KernelPageSize:2048kB'/proc/114732/地图\|grep"^Size:"|awk'BEGIN{sum=0}{sum+=$2}END{print"gb:"sum/1024/1024}'gb:200.002#MGMTDB实例使用1G大内存:%grep-B11'KernelPageSize:2048kB'/proc/248262/smaps\|grep"^Size:"|awk'BEGIN{sum=0}{sum+=$2}END{print"gb:"sum/1024/1024}'gb:1.00195
