`
walksing
  • 浏览: 216987 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

10g中占用CPU很高异常oracle进程分析

阅读更多

上一篇 / 下一篇  2009-07-20 16:15:19 / 个人分类:Oracle研究

查看( 107 ) / 评论( 0 ) / 评分( 0 / 0 )
        在AIX 5.3平台下oracle 10.2.0.3测试环境中,经常发现某些oracle进程占用很大的CPU资源,但这些进程并不存在v$session中,具体发现脚本如下:

      SQL>select spid, pid, program from v$process
                 where addr not in (select paddr from v$session)

                SPID         PID   PROGRAM
               ------------ ------------------------------------------------
               1962208    18   xxxxx@xxxx (TNS V1-V3)
               2039826     49  xxxxx@xxxx (TNS V1-V3)

       查看系统中发现该进程占用CPU比例很高,每个进程消耗CPU大约20%资源。

       以下是该问题的具体分析:

      SQL> alter session set events ' immediate trace name systemstate level 266'
  或者
      SQL>oradebug setospid 1962208
      SQL>oradebug short_stack    
    
   查找对应的 PROCESS 18,具体信息如下:
Short stack dump: ksdxfstk+002c<-ksdxcb+04e4<-sspuser+0074<-000044BC<-ktsmg_register_tac+0074                <-kscnfy+01f4<-ksucrp+0574<-opiino+03d4<-opiodr+0adc<-opidrv+0474<-sou2o+0090
<-opimai_real+01ec<-main+0098<-__start+0098

Dump of memory from 0x070000009E5EF668 to 0x070000009E5EF870
   ................................
  Repeat 29 times
    ----------------------------------------
    SO: 70000009ea7aef8, type: 3, owner: 70000009e6322a0, flag: INIT/-/-/0x00
    (call) sess: cur 0, rec 0, usr 0; depth: 0
    ----------------------------------------
    SO: 7000000941eced0, type: 16, owner: 70000009e6322a0, flag: INIT/-/-/0x00
    (osp req holder)

  short stack分析:
          start ->main->opimai_real->sou2o->opidrv->ipiodrv->opiino->ksucrp
          ->kscnfy->ktsmg_register_tac+0074->sspuser ..........
 
sspuser()功能是给oradebug 请求的代码路径,所以我们关注ktsmg_register_tac,通过metalink查询,发现BUG:6084108与我们所发现的问题非常相似,在10.2.0.4解决该bug。

附录:
其BUG:6084108具体问题描述:

PROBLEM:--------Intermittently, oracle process abnormally terminates due to ora-3115, thenconsumed one cpu 100%.  There was no v$session info so could not get sessioninformation to track down the root cause.STACK TRACE:------------ktsmg_register_tac 0074 kscnfy ksucrp opiino opiodr opidrv sou2o opimai_realmain暂时解决办法,用操作系统命令kill -9 删除以上进程。
分享到:
评论

相关推荐

    CPU占用高

    这有助于我们识别占用CPU资源最多的程序。 2. **恶意软件检查**: 高CPU占用有时可能由病毒、木马或恶意软件引起。运行反病毒扫描并确保操作系统和所有软件的更新是最新的,可以防止这类问题。 3. **系统服务与...

    实例异常之Oracle数据库无响应故障的处理

    2. **Oracle进程循环(Spins)**:当Oracle进程中的代码陷入无限循环时,这类挂起的会话在`V$SESSION`视图中显示为“ACTIVE”状态。即使尝试使用`ALTER SYSTEM KILL SESSION 'sid,serial#'`命令也无法完全终止会话,...

    Oracle Database 10g Performance Tuning

    《Oracle Database 10g Performance Tuning》是Oracle数据库领域中的一个重要主题,它涉及了数据库在处理大量数据和复杂查询时如何实现最佳性能的技术和策略。Oracle 10g是Oracle公司推出的一个重要版本,其性能优化...

    oracle memory检查工具

    Oracle后台进程如DBWn(数据库写入器)、LGWR(日志写入器)等对内存的需求是动态变化的,这个工具可能用于定期检查这些进程的内存占用,以便及时发现异常。 "ora_cpu.pl"可能是另一个Perl脚本,专注于CPU使用率的...

    Oracle10g数据库系统性能优化与调整.pdf

    SGA是所有Oracle进程共享的内存区域,包括数据缓冲区缓存、重做日志缓冲区、共享SQL区等。我们需要根据数据库的实际负载情况,合理配置SGA大小,避免内存不足导致频繁的磁盘I/O。PGA则主要用于存储每个会话的私有...

    Oracle数据库日常维护手册.pdf

    - **解释**: 显示消耗CPU最高的前十个Oracle进程。 - **注意事项**: 这些进程可能会影响整个系统的性能。 ##### 6.7 检查碎片程度高的表 - **命令**: `$ select owner, table_name, num_rows, blocks, pct_free, ...

    Oracle DBA日常巡检最佳实践

    - **目的**:检查是否存在Oracle核心转储文件,这可能是Oracle进程崩溃的迹象。 - **方法**:浏览指定的核心转储目录(如`/u01/app/oracle/crash`),查看是否存在新的核心转储文件。 **2.4 检查Oracle初始化文件中...

    oracle数据库应急整理.docx

    如果 CPU 占用很高,需要检查是否有 oracle 后台进程 CPU 占用高的情况。如果是 oracle 连接进程 CPU 占用高,可以转到“cpu 高度消耗问题”解决。如果 MEM 很低,SWAP 区 page out 很频繁,需要联系系统管理员检查...

    ORACLE_数据库日常工作维护知识总结.pdf

    - 检查扩展异常的对象:监控是否有对象占用了过多的空间,这可能是由于设计不当或数据异常造成的。 - 检查system表空间内容:作为数据库中最重要的表空间,其内部对象的状态需要特别关注。 - 检查对象的下一扩展...

    Unix Oracle数据库

    在Unix环境中,可以使用`glance`、`topas`或`ps`命令找到占用资源高的进程,并通过查询`v$session`、`v$process`和`v$sqltext`视图,获取对应进程ID(PID)的SQL语句。这有助于识别和优化性能低效的SQL。 总之,...

    Oracle-Performance-Tuning.rar_oracle

    8. **数据库性能诊断**:通过AWR报告,可以识别性能瓶颈,如CPU使用率过高、I/O延迟、等待事件等,并制定相应的解决策略。 9. **物理存储优化**:包括数据文件、控制文件、重做日志文件的布局,以及磁盘I/O子系统的...

    Oracle数据库性能优化及监控系统的设计实现.pdf

    通过分析V$sysstat中的CPU时间,可以找出占用过多CPU的会话并进行优化。 监控系统是确保数据库性能稳定的关键工具。Oracle提供了丰富的监控工具,如v$视图,可以用来追踪CPU、I/O、内存等资源的使用情况,以及会话...

    Oracle9i的init.ora参数中文说明

    值范围: Oracle8i National Language Support Guide 中指定的任何有效的10 字节字符串。 默认值: 从 NLS_TERRITORY 中获得 nls_date_language: 说明: 指定拼写日期名, 月名和日期缩写词 (AM, PM, AD, BC) 的语言。...

    CPU 100%问题跟踪

    通过调试器(如GDB)附加到运行中的进程,查看CPU占用高的函数或线程,理解代码执行逻辑,找出可能导致CPU过载的部分。 4. **工具应用**:在给定的标签中提到了"工具",这可能指的是专门用于性能分析的工具,如...

    Tuning IBM AIX 5L for an Oracle Database.pdf

    Oracle 数据库进程在 AIX 5L 上占用大量内存,主要包括共享全局区 (SGA) 和程序全局区 (PGA)。正确设置这些区域的大小对性能至关重要。 **固定内存** 固定内存技术可以改善 Oracle 的内存访问速度。通过将 SGA 固定...

    Oracle数据库性能优化

    以上只是Oracle数据库性能优化的一部分要点,实际操作中需要结合具体业务场景,进行全面的性能评估和调优。阅读"Oracle数据库性能优化.pdf"应该会提供更深入的指导和实例,帮助理解和应用这些知识。

Global site tag (gtag.js) - Google Analytics