0
点赞
收藏
分享

微信扫一扫

内存溢出导致pmon被kill


概念区分:

内存溢出(out of memory),是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。


内存泄露(memory leak),是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

问题背景:

一个较为古老的数据库突然宕机,经过大佬排查很快查到了是内存溢出的原因,因为大佬处理的非常快,系统和数据库刷新的日志也比较快,所以本次只记录下了问题的大致处理流程。


系统日志:

{

通过命令查看可能存在的内存泄露

ps 命令

ps -ef | grep 进程关键字      //查看指定进程的信息

ps -aux       // 列出当前内存中的所有进程

ps aux --sort=%mem(或者 ps aux --sort %mem) //按照内存占用率的升序排序

ps aux --sort=-%mem  (或者 ps aux --sort -%mem) //按照内存占用率降序排序

ps aux | grep -e test       //打印含义test关键字的进程

ps -aux | grep -E "test|PID"      //打印 包含test关键字的进程信息

  
  
top 命令

top -d -3     //3s 显示一次

top -p 进程号 //显示进程的信息


free 命令

free -s 3:表示每隔 3 秒打印一次内存信息


cat /proc/meminfo 或 cat /proc/$pid/status 命令

cat /proc/meminfo 命令用来查看 Linux 系统的内存使用情况。

cat /proc/$pid/status 命令,用来查看某个进程的内存使用信息。

}

本次通过系统日志查看

原因:/var/log/message 系统日志里面有报错 内存溢出导致oracle pmon进程被kill

Out of Memory,可在系统日志中查找该关键字,查找到相关信息


然后去oracle日志被kill时的systemdump  里面显示当时这个用户这个进程

通过日志找到相关信息


去数据库视图根据信息查询,找到问题SQL

相关视图,数据库会话:v$session


相关视图结构参考

SQL> desc v$session;

Name                                      Null?    Type

----------------------------------------- -------- ----------------------------

SADDR                                              RAW(8)

SID                                                NUMBER

SERIAL#                                            NUMBER

AUDSID                                             NUMBER

PADDR                                              RAW(8)

USER#                                              NUMBER

USERNAME                                           VARCHAR2(30)

COMMAND                                            NUMBER

OWNERID                                            NUMBER

TADDR                                              VARCHAR2(16)

LOCKWAIT                                           VARCHAR2(16)

STATUS                                             VARCHAR2(8)

SERVER                                             VARCHAR2(9)

SCHEMA#                                            NUMBER

SCHEMANAME                                         VARCHAR2(30)

OSUSER                                             VARCHAR2(30)

PROCESS                                            VARCHAR2(24)

MACHINE                                            VARCHAR2(64)

PORT                                               NUMBER

TERMINAL                                           VARCHAR2(30)

PROGRAM                                            VARCHAR2(48)

TYPE                                               VARCHAR2(10)

SQL_ADDRESS                                        RAW(8)

SQL_HASH_VALUE                                     NUMBER

SQL_ID                                             VARCHAR2(13)

SQL_CHILD_NUMBER                                   NUMBER

SQL_EXEC_START                                     DATE

SQL_EXEC_ID                                        NUMBER

PREV_SQL_ADDR                                      RAW(8)

PREV_HASH_VALUE                                    NUMBER

PREV_SQL_ID                                        VARCHAR2(13)

PREV_CHILD_NUMBER                                  NUMBER

PREV_EXEC_START                                    DATE

PREV_EXEC_ID                                       NUMBER

PLSQL_ENTRY_OBJECT_ID                              NUMBER

PLSQL_ENTRY_SUBPROGRAM_ID                          NUMBER

PLSQL_OBJECT_ID                                    NUMBER

PLSQL_SUBPROGRAM_ID                                NUMBER

MODULE                                             VARCHAR2(64)

MODULE_HASH                                        NUMBER

ACTION                                             VARCHAR2(64)

ACTION_HASH                                        NUMBER

CLIENT_INFO                                        VARCHAR2(64)

FIXED_TABLE_SEQUENCE                               NUMBER

ROW_WAIT_OBJ#                                      NUMBER

ROW_WAIT_FILE#                                     NUMBER

ROW_WAIT_BLOCK#                                    NUMBER

ROW_WAIT_ROW#                                      NUMBER

TOP_LEVEL_CALL#                                    NUMBER

LOGON_TIME                                         DATE

LAST_CALL_ET                                       NUMBER

PDML_ENABLED                                       VARCHAR2(3)

FAILOVER_TYPE                                      VARCHAR2(13)

FAILOVER_METHOD                                    VARCHAR2(10)

FAILED_OVER                                        VARCHAR2(3)

RESOURCE_CONSUMER_GROUP                            VARCHAR2(32)

PDML_STATUS                                        VARCHAR2(8)

PDDL_STATUS                                        VARCHAR2(8)

PQ_STATUS                                          VARCHAR2(8)

CURRENT_QUEUE_DURATION                             NUMBER

CLIENT_IDENTIFIER                                  VARCHAR2(64)

BLOCKING_SESSION_STATUS                            VARCHAR2(11)

BLOCKING_INSTANCE                                  NUMBER

BLOCKING_SESSION                                   NUMBER

FINAL_BLOCKING_SESSION_STATUS                      VARCHAR2(11)

FINAL_BLOCKING_INSTANCE                            NUMBER

FINAL_BLOCKING_SESSION                             NUMBER

SEQ#                                               NUMBER

EVENT#                                             NUMBER

EVENT                                              VARCHAR2(64)

P1TEXT                                             VARCHAR2(64)

P1                                                 NUMBER

P1RAW                                              RAW(8)

P2TEXT                                             VARCHAR2(64)

P2                                                 NUMBER

P2RAW                                              RAW(8)

P3TEXT                                             VARCHAR2(64)

P3                                                 NUMBER

P3RAW                                              RAW(8)

WAIT_CLASS_ID                                      NUMBER

WAIT_CLASS#                                        NUMBER

WAIT_CLASS                                         VARCHAR2(64)

WAIT_TIME                                          NUMBER

SECONDS_IN_WAIT                                    NUMBER

STATE                                              VARCHAR2(19)

WAIT_TIME_MICRO                                    NUMBER

TIME_REMAINING_MICRO                               NUMBER

TIME_SINCE_LAST_WAIT_MICRO                         NUMBER

SERVICE_NAME                                       VARCHAR2(64)

SQL_TRACE                                          VARCHAR2(8)

SQL_TRACE_WAITS                                    VARCHAR2(5)

SQL_TRACE_BINDS                                    VARCHAR2(5)

SQL_TRACE_PLAN_STATS                               VARCHAR2(10)

SESSION_EDITION_ID                                 NUMBER

CREATOR_ADDR                                       RAW(8)

CREATOR_SERIAL#                                    NUMBER

ECID                                               VARCHAR2(64)


SQL> desc v$sql

Name                                      Null?    Type

----------------------------------------- -------- ----------------------------

SQL_TEXT                                           VARCHAR2(1000)

SQL_FULLTEXT                                       CLOB

SQL_ID                                             VARCHAR2(13)

SHARABLE_MEM                                       NUMBER

PERSISTENT_MEM                                     NUMBER

RUNTIME_MEM                                        NUMBER

SORTS                                              NUMBER

LOADED_VERSIONS                                    NUMBER

OPEN_VERSIONS                                      NUMBER

USERS_OPENING                                      NUMBER

FETCHES                                            NUMBER

EXECUTIONS                                         NUMBER

PX_SERVERS_EXECUTIONS                              NUMBER

END_OF_FETCH_COUNT                                 NUMBER

USERS_EXECUTING                                    NUMBER

LOADS                                              NUMBER

FIRST_LOAD_TIME                                    VARCHAR2(38)

INVALIDATIONS                                      NUMBER

PARSE_CALLS                                        NUMBER

DISK_READS                                         NUMBER

DIRECT_WRITES                                      NUMBER

BUFFER_GETS                                        NUMBER

APPLICATION_WAIT_TIME                              NUMBER

CONCURRENCY_WAIT_TIME                              NUMBER

CLUSTER_WAIT_TIME                                  NUMBER

USER_IO_WAIT_TIME                                  NUMBER

PLSQL_EXEC_TIME                                    NUMBER

JAVA_EXEC_TIME                                     NUMBER

ROWS_PROCESSED                                     NUMBER

COMMAND_TYPE                                       NUMBER

OPTIMIZER_MODE                                     VARCHAR2(10)

OPTIMIZER_COST                                     NUMBER

OPTIMIZER_ENV                                      RAW(2000)

OPTIMIZER_ENV_HASH_VALUE                           NUMBER

PARSING_USER_ID                                    NUMBER

PARSING_SCHEMA_ID                                  NUMBER

PARSING_SCHEMA_NAME                                VARCHAR2(30)

KEPT_VERSIONS                                      NUMBER

ADDRESS                                            RAW(8)

TYPE_CHK_HEAP                                      RAW(8)

HASH_VALUE                                         NUMBER

OLD_HASH_VALUE                                     NUMBER

PLAN_HASH_VALUE                                    NUMBER

CHILD_NUMBER                                       NUMBER

SERVICE                                            VARCHAR2(64)

SERVICE_HASH                                       NUMBER

MODULE                                             VARCHAR2(64)

MODULE_HASH                                        NUMBER

ACTION                                             VARCHAR2(64)

ACTION_HASH                                        NUMBER

SERIALIZABLE_ABORTS                                NUMBER

OUTLINE_CATEGORY                                   VARCHAR2(64)

CPU_TIME                                           NUMBER

ELAPSED_TIME                                       NUMBER

OUTLINE_SID                                        NUMBER

CHILD_ADDRESS                                      RAW(8)

SQLTYPE                                            NUMBER

REMOTE                                             VARCHAR2(1)

OBJECT_STATUS                                      VARCHAR2(19)

LITERAL_HASH_VALUE                                 NUMBER

LAST_LOAD_TIME                                     VARCHAR2(38)

IS_OBSOLETE                                        VARCHAR2(1)

IS_BIND_SENSITIVE                                  VARCHAR2(1)

IS_BIND_AWARE                                      VARCHAR2(1)

IS_SHAREABLE                                       VARCHAR2(1)

CHILD_LATCH                                        NUMBER

SQL_PROFILE                                        VARCHAR2(64)

SQL_PATCH                                          VARCHAR2(30)

SQL_PLAN_BASELINE                                  VARCHAR2(30)

PROGRAM_ID                                         NUMBER

PROGRAM_LINE#                                      NUMBER

EXACT_MATCHING_SIGNATURE                           NUMBER

FORCE_MATCHING_SIGNATURE                           NUMBER

LAST_ACTIVE_TIME                                   DATE

BIND_DATA                                          RAW(2000)

TYPECHECK_MEM                                      NUMBER

IO_CELL_OFFLOAD_ELIGIBLE_BYTES                     NUMBER

IO_INTERCONNECT_BYTES                              NUMBER

PHYSICAL_READ_REQUESTS                             NUMBER

PHYSICAL_READ_BYTES                                NUMBER

PHYSICAL_WRITE_REQUESTS                            NUMBER

PHYSICAL_WRITE_BYTES                               NUMBER

OPTIMIZED_PHY_READ_REQUESTS                        NUMBER

LOCKED_TOTAL                                       NUMBER

PINNED_TOTAL                                       NUMBER

IO_CELL_UNCOMPRESSED_BYTES                         NUMBER

IO_CELL_OFFLOAD_RETURNED_BYTES                     NUMBER



举报

相关推荐

0 条评论