今天突然发现线上一台oracle 数据库 servercpu 跑的非常高。感觉不是非常正常,细致看了下。发现是smon 进程吃掉了一个cpu。



那么这个smon 进程究竟在倒腾啥玩意

对smon 进程开启10046 跟下不就全明了了么



分析trace 文件就这么一个sql语句 ,这玩意在删smon_scn_time 

delete from smon_scn_time where thread=0 and scn =  (select min(scn) from smon_scn_time where thread=0)



SQL> select count (*) from sys.smon_scn_time; 

  COUNT(*)

----------

     57123





SQL> select object_id from dba_objects where object_name = 'SMON_SCN_TIME'; 

 OBJECT_ID

----------

       575





SQL> select * from v$locked_object where object_id = 575;

    XIDUSN    XIDSLOT     XIDSQN  OBJECT_ID SESSION_ID

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

ORACLE_USERNAME                OS_USER_NAME                   PROCESS

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

LOCKED_MODE

-----------

        27         15      33429        575        164

                               oracle                         30801

          3---行独占锁





查了下mos。找到一个文档 LOCK ON SYS.SMON_SCN_TIME (文档 ID 747745.1)

本故障的现象:

smon 进程在数据库一启动后就会对smon_scn_time 加一个锁。而且永远都不会释放

根本原因是表和索引不一致。每次删除记录为0条,因此删除操作会一直持续,为了保证表中记录小于

最大映射范围值。

With the Partitioning, OLAP and Data Mining options

[oracle@lixora adump]$ sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on Wed Jul 15 09:25:26 2015

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options



----限制smon更新 smon_scn_time 表

SQL> alter system set events '12500 trace name context forever, level 10 ';

System altered.



---手动清理表记录

SQL> delete from smon_scn_time;

2452 rows deleted.



SQL> commit;

Commit complete.



----关闭限制

SQL> alter system set events '12500 trace name context off ';

System altered.

这里留了一个疑惑?

为什么smon_scn_time 表和索引会不一致呢?

偶遇 smon 进程cpu 开销高异常分析的更多相关文章

  1. systemd --user进程CPU占用高问题分析

    1.问题由来 近期发现堡垒机环境有如下问题,systemd占用大量cpu: 原文链接:https://www.cnblogs.com/yaohong/p/16046670.html 2.问题定位 2. ...

  2. Java进程CPU使用率高排查

    Java进程CPU使用率高排查 生产java应用,CPU使用率一直很高,经常达到100%,通过以下步骤完美解决,分享一下.1.jps 获取Java进程的PID.2.jstack pid >> ...

  3. JVM进程cpu飙高分析

    在项目快速迭代中版本发布频繁  近期上线报错一个JVM导致服务器cpu飙高 但内存充足的原因现象.  对于耗内存的JVM程序来而言,  基本可以断定是线程僵死(死锁.死循环等)问题. 这里是纪录一下排 ...

  4. 性能分析 | Java进程CPU占用高导致的网页请求超时的故障排查

    一.发现问题的系统检查: 一个管理平台门户网页进统计页面提示请求超时,随进服务器操作系统检查load average超过4负载很大,PID为7163的进程占用到了800%多. 二.定位故障 根据这种故 ...

  5. Windows服务器java.exe占用CPU过高问题分析及解决

    最近在测试一个用java语言实现的数据采集接口时发现,接口一旦运行起来,CPU利用率瞬间飙升到85%-95%,一旦停止就恢复到40%以下,这让我不得不面对以前从未关注过的程序性能问题. 在硬着头皮查找 ...

  6. java进程CPU飙高

    因为这段时间一直在弄监控,但是工作还是在进行中 因为机器不多,所以今天早上巡检了一下,看到一台生产机器上的CPU飙高 top

  7. db2 cpu使用率高问题分析处理

    性能调优步骤 明确问题->收集数据->分析数据->细化.定位问题->优化 环境: db2 问题:%usr CPU高,大约99%,db2sysc进程使用的最多 收集数据 ---系 ...

  8. HBase Thrift2 CPU过高问题分析

    目录 目录 1 1. 现象描述 1 2. 问题定位 2 3. 解决方案 5 4. 相关代码 5 1. 现象描述 外界连接9090端口均超时,但telnet端口总是成功.使用top命令观察,发现单个线程 ...

  9. Linux 线程占用CPU过高定位分析

    今天朋友问我一个Linux程序CPU占用涨停了,该如何分析, CPU占用过高,模拟CPU占用过高的情况 先上一段代码: #include <iostream> #include <t ...

随机推荐

  1. SQL 整理

    批量插入 insert into table select ... union all select... insert into table (...) values (...) , (...) i ...

  2. Mybatis注解的使用

    一.mybatis 简单注解 关键注解词 : @Insert : 插入sql , 和xml insert sql语法完全一样 @Select : 查询sql, 和xml select sql语法完全一 ...

  3. pip3 快速安装

    https://www.cnblogs.com/wenchengxiaopenyou/p/5709218.html

  4. likely,unlikely宏与GCC内建函数__builtin_expect()

    在 GCC 手册中对 __builtin_expect() 的描述是这样的: 由于大部分程序员在分支预测方面做得很糟糕,所以 GCC 提供了这个内建函数来帮助程序员处理分支预测,优化程序.其第一个参数 ...

  5. OutputDebugString方便格式化WIN32封装

    void TRACE(LPCTSTR lpszFmt, ...) { va_list args; va_start(args, lpszFmt); ; TCHAR *lpszBuf = (TCHAR* ...

  6. 打印PE目录数据信息

    printf("数据目录信息:\n"); PIMAGE_DATA_DIRECTORY MyDataDir; MyDataDir = PIMAGE_DATA_DIRECTORY((& ...

  7. Centos7下zabbix部署(五)定义报警媒介-微信

    1.注册微信 注册过程参考地址:https://www.cnblogs.com/hanyifeng/p/5368102.html 主要需要以下一些信息 CorpID :     wwxxxxxxxxx ...

  8. hdu 1217(Floyed)

    Arbitrage Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  9. AtCoder Grand Contest 012 B Splatter Painting (反向处理 + 记忆化)

    题目链接  agc012 Problem B 题意  给定一个$n$个点$m$条边的无向图,现在有$q$个操作.对距离$v$不超过$d$的所有点染色,颜色编号为$c$. 求每个点最后的颜色状态. 倒过 ...

  10. ACM中的正则表达式

    layout: post title: ACM中的正则表达式 author: "luowentaoaa" catalog: true mathjax: true tags: - 正 ...