首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> 入门基础 >> 正文

AIX系统性能管理之Oracle案例分析

    在这个案例中,主要重点就io这一块作分析。对于其他的,在这里就不作讨论。

      应用环境:

      两台P570作HA(Rotating方式),AIX 5.3 安装oracle 9206,磁阵DS4300,14块盘,6块作raid10为hdisk4,另外8块盘作raid10为hdisk5

      两台P630作HA(Rotating方式),AIX 5.1 安装oracle 9206,磁阵7133

      两个数据库各分担一定的功能。P570压力比较大。

      性能问题:

      最近,P570数据库上的数据库性能急剧下降,报表统计跑将近24个小时才能完成,严重影响白天正常的业务,给主机带来比较大的性能负担。

      检查过程(主要在P570上操作):

      1、使用topas查看一下操作系统的load情况。结果没想到topas无法运行了,得到的结果如下,根本无法刷新数据。

    Topas Monitor for host:    jsdxh_db01           EVENTS/QUEUES    FILE/TTY
    Thu Oct 25 13:58:32 2007   Interval:  2         Cswitch          Readch
                                                    Syscall          Writech
    Kernel          |                            |  Reads            Rawin
    User            |                            |  Writes           Ttyout
    Wait            |                            |  Forks            Igets
    Idle            |                            |  Execs            Namei
                                                    Runqueue         Dirblk
    Network  KBPS   I-Pack  O-Pack   KB-In  KB-Out  Waitqueue
                                                    PAGING           MEMORY
                                                    Faults           Real,MB
                                                    Steals           % Comp
    Disk    Busy%     KBPS     TPS KB-Read KB-Writ  PgspIn           % Noncomp
                                                    PgspOut          % Client
                                                    PageIn
                                                    PageOut          PAGING SPACE
                                                    Sios             Size,MB
                                                                     % Used
                                                    NFS (calls/sec)  % Free
                                                    ServerV2
                                                    ClientV2           Press:
                                                    ServerV3           "h" for help
                                                    ClientV3           "q" to quit


    2、安装nmon_aix53(操作系统为5.3),结果nmon_aix53运行也报错。

    #./nmon_aix53
    ERROR: Assert Failure in file="nmon11.c" in function="main" at line=3239
    ERROR: Reason=NULL pointer
    ERROR: Expression=[[q->procs = MALLOC(sizeof(struct procentry64 ) * n )]]
    ERROR: errno=12
    ERROR: errno means : Not enough space


    3、检查进程情况

      #ps -ef | wc -l
      9947


      竟然总共已经产生了9000多个进程。在这众多的进程中可以发现有很多的defunct进程。

    #ps -ef |grep defunct | wc -l
    9331
    ##ps -ef | grep defunct | more
        root   159952        1   0                  0:00 <defunct>
        root   172052        1   0                  0:00 <defunct>
        root   225294        1   1                  0:00 <defunct>
        root   262236        1   0                  0:00 <defunct>
        root   290902        1   0                  0:00 <defunct>


      在网上随便查一下defunct,就可以知道,这是孤儿进程。已经找不到父进程,所以把init(PID 1)作为他的父进程。上面的结果中就是PPID=1。孤儿进程无法用kill -9 来清除,即使是root用户也不行,只能重启。这些孤儿进程一般情况下都是由于不当的fork ()/execve()造成的。

      继续检查系统,不知道这么多的孤儿进程是哪个产生的。看一下主机系统的报错情况。

    #errpt |more
    IDENTIFIER TIMESTAMP  T C RESOURCE_NAME  DESCRIPTION
    A63BEB70   1025140007 P S SYSPROC        SOFTWARE PROGRAM ABNORMALLY TERMINATED
    A63BEB70   1025133007 P S SYSPROC        SOFTWARE PROGRAM ABNORMALLY TERMINATED
    A63BEB70   1025130007 P S SYSPROC        SOFTWARE PROGRAM ABNORMALLY TERMINATED
    A63BEB70   1025123007 P S SYSPROC        SOFTWARE PROGRAM ABNORMALLY TERMINATED
    A63BEB70   1025120007 P S SYSPROC        SOFTWARE PROGRAM ABNORMALLY TERMINATED


      在这里,可以看到频繁的这个报错。基本每隔半个小时报错一次。再检查详细的错误。可以定位到原来是由于一个网管监控软件造成的这个错误。基本也可以判断,由于整个软件的不当的fork调用,导致了数量惊人的孤儿进程。

      现在孤儿进程的问题基本确定了,但是这个孤儿进程到目前为止,对系统造成的影响有多大?网上搜了一把,孤儿进程一般不占用内存,不占用空间,只不过是在进程列表中占了一个位置,所以并不会对系统性能产生太严重的影响。当然,如果任期发展,有可能就会使主机hang住。在这里,网管系统是以root用户运行的,进程数的限制非常大。所以,这里孤儿进程应该只是一个安全隐患,并不是对当前性能造成影响的原因。

    4、检查cpu的使用情况,

    #vmstat 1 10
    System configuration: lcpu=16 mem=23552MB
    kthr    memory              page              faults        cpu
    ----- ----------- ------------------------ ------------ -----------
     r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
     4  0 3533226 2251446   0   0   0   0    0   0 3167 323907 7321 22  9 32 37
     1  0 3533229 2251443   0   0   0   0    0   0 1863 313913 4784 18  8 40 34
     2  0 3533229 2251443   0   0   0   0    0   0 3004 319720 6939 19  9 35 38

      Cpu的使用率基本在65%左右,wa基本在35%到40%,io等待比较严重。

[1] [2] [3] [4] 下一页

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航