您好,想请教一下:
Oracle11.2.0.4,单实例
OS: rhel6.4
数据库服务器于4号晚上22:01内存耗尽杀掉了DBW0进程,之后pmon进程检测到后就kill掉了实例(Oracle日志)。
-------------------------------------------------------------------------------------------------------------------------------
OS日志如下:
Jul 4 22:01:49 s-oradb kernel: Out of memory: Kill process 3093 (oracle) score 185 or sacrifice child
Jul 4 22:01:49 s-oradb kernel: Killed process 3093, UID 502, (oracle) total-vm:36954300kB, anon-rss:2492kB, file-rss:13766820kB
Oracle日志如下:
Thu Jul 04 22:00:00 2019
Setting Resource Manager plan SCHEDULER[0x32DC]:DEFAULT_MAINTENANCE_PLAN via scheduler window
Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter
Thu Jul 04 22:00:00 2019
Starting background process VKRM
Thu Jul 04 22:00:00 2019
VKRM started with pid=168, OS id=100641
Thu Jul 04 22:00:02 2019
Begin automatic SQL Tuning Advisor run for special tuning task "SYS_AUTO_SQL_TUNING_TASK"
Thu Jul 04 22:01:53 2019
System state dump requested by (instance=1, osid=3075 (PMON)), summary=[abnormal instance termination].
Thu Jul 04 22:01:53 2019
PMON (ospid: 3075): terminating the instance due to error 471
Thu Jul 04 22:01:53 2019
opiodr aborting process unknown ospid (82470) as a result of ORA-1092
Thu Jul 04 22:01:53 2019
opiodr aborting process unknown ospid (75843) as a result of ORA-1092
System State dumped to trace file /oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_diag_3085_20190704220153.trc
Thu Jul 04 22:01:53 2019
ORA-1092 : opitsk aborting process
Thu Jul 04 22:01:53 2019
ORA-1092 : opitsk aborting process
Instance terminated by PMON, pid = 3075
-------------------------------------------------------------------------------------------------------------------------------
服务器内存64GB,分配给SGA35G,PGA设为4G。
开启了hugepage,大概35.01G。
设置了vm.min_free_kbytes=1G
之后检查:sga,pga在故障时间前后均无明显变化,进程数、会话数也均无明显波动。
监控:因内存监控的算法包含了cached(free -m中的cached),所以算法是不准确的,这个值一直以来都是98%-99%。
CPU、IO在故障时间点均无明显波动。
疑问:
1、既然sga、pga、进程会话均无异常,那是否可以排除oracle当时因为业务突增的情况而耗尽内存?
2、若不是oracle本身原因,那是否可以定位为是操作系统的cached无法释放导致?但是设置了vm.min_free_kbytes=1G,按理来说会有1G的空闲空间,不至于内存耗尽。因监控没有采集到内存的真实变化,故无法判断是否是cached一直在增长未释放。
3、请问是否有bug触发这种情况:还有free memory,但是依旧触发了oom killer。
麻烦有时间帮忙看一下,不胜感激。