最近巡檢發現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分鐘左右,換頁內存使用率下降。