最近巡检发现ORACLE 12C集群的其中一个节点操作系统换页内存使用率超过了50%。网上找了几天查询AIX操作系统换页内存占用前几的进程,一直无果,最后还是一位前IBM专家帮助下,让问题继续深入下去。
1、查询占用换页内存排名前三的进程
[root@xxxx:/]#svmon -gP -t 3|grep -p Pid|grep '^.*[0-9] '
28901690 java 1060563 45646 1407827 2470610 Y Y N
11469114 oracle 8591360 45588 372723 8964398 Y N N
26411422 oracle 8606722 45588 359315 8965758 Y N N
2、看占用换页内存最高是什么java进程
[root@xxxx:/]#ps -ef|grep 28901690
grid 28901690 1 0 Aug 30 - 202:07 /u01/app/12.2.0/grid/jdk/bin/java -classpath /u01/app/12.2.0/grid/jdk/jre/lib/rt.jar:/u01/app/12.2.0/grid/jdk/jre/lib/i18n.jar:/u01/app/12.2.0/grid/jlib/jagent.jar:/u01/app/12.2.0/grid/jlib/srvm.jar: -Dora.jagent.conf=conf/orajagent.conf oracle.jagent.core.OraJavaAgentDriver这是个监测集群状况的java进程,是cvu资源下的java进程。
3、一个CVU.ORA资源占用如此的多系统资源,查了一下MOS得出了答案
Description
VM size of jagent process shows more than 22 GB if the physical memory of the machine is very large. Rediscovery Notes start ora.cvu on a machine that has more physical memory (about 70 GB) jagent dose not limit maximum memory allocation for its java process, the flag "-Xmx" should be specified in start-up options. $ hostname;date;/usr/ucb/ps -auxww|grep 28752;date <node name> Wednesday, September 23, 2015 03:07:07 AM PDT crsusr 28752 0.0 0.33382440685936 ? S Sep 16 18:45 <grid_home>/jdk/bin/java -d64 -classpath <grid_home>/jdk/jre/lib/rt.jar:<grid_home>/jdk/jre/lib/i18n. jar:<grid_home>/jlib/jagent.jar:<grid_home>/jlib/srvm.jar:-Dora.jagent.conf=conf/orajagent.conf oracle.jagent.core.OraJavaAgentDriver Wednesday, September 23, 2015 03:07:07 AM PDT
原来集群资源ora.cvu运行在宿主节点上,一天消耗大概5M左右(印象中是这个值,可能有出入)的内存,消耗的内存能达70G左右,jagent不会限制这个java进程最大的使用内存。怎么解决这个问题呢,oracle给出来几个解决方案:
1)升级数据库版本
2)启动ora.cvu资源的时候,通过-Xmx指定java进程最大可使用内存
3)停止ora.cvu资源,这个资源停了对数据库没有影响。
本人是使用的是第三种方案:
srvctl stop cvu
srvctl disable cvu ##禁止自动启动
停止CVU服务之后,过了5分钟左右,换页内存使用率下降。